package pe.gob.osce.sirenas.wd.jsf.bean.registro;
/*
* Resumen.
* Objeto 				:	RegistroArbitroBean.java
* Descripcion 			: 	.
* Fecha de Creacion 	: 	26/02/2015.
* Pry de Creacion 		: 	RNA/RNS.
* Autor 				: 	Julio Cayulla.
* ================================================================================================
* Modificaciones
* Motivo						Fecha		Nombre				Descripcion
* ================================================================================================
*
*/
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.ResourceBundle;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;

import org.apache.log4j.Logger;
import org.primefaces.context.RequestContext;
import org.primefaces.event.TabChangeEvent;

import pe.gob.osce.sirenas.model.AcreditacionDTO;
import pe.gob.osce.sirenas.model.AuditoriaDTO;
import pe.gob.osce.sirenas.model.CapacitacionDTO;
import pe.gob.osce.sirenas.model.DocenciaDTO;
import pe.gob.osce.sirenas.model.EspecialidadAcademicaDTO;
import pe.gob.osce.sirenas.model.ExperienciaLaboralDTO;
import pe.gob.osce.sirenas.model.FichaArbitralDTO;
import pe.gob.osce.sirenas.model.MateriaControversiaDTO;
import pe.gob.osce.sirenas.model.TrayectoriaArbitralDTO;
import pe.gob.osce.sirenas.model.servicios.BusquedaContratoDTO;
import pe.gob.osce.sirenas.model.servicios.EntidadDTO;
import pe.gob.osce.sirenas.model.servicios.ObjetoContratacionDTO;
import pe.gob.osce.sirenas.model.servicios.ProcesoProdDTO;
import pe.gob.osce.sirenas.svc.BuscarContratacionesServiceLocal;
import pe.gob.osce.sirenas.svc.RegistrarFichaArbitroServiceLocal;
import pe.gob.osce.sirenas.util.ModeloException;
import pe.gob.osce.sirenas.wd.util.CODIGO_REGISTRO;
import pe.gob.osce.sirenas.wd.util.ConstanteWeb;
import pe.gob.osce.sirenas.wd.util.RepositorioDatos;
import pe.gob.osce.sirenas.wd.util.UBaseManage;

@ManagedBean(name="registroArbitroEspecialidadBean")
@SessionScoped
public class RegistroArbitroEspecialidadBean extends UBaseManage implements Serializable{

	private static final long serialVersionUID = 3491755288947199625L;


	final static Logger log = Logger.getLogger(RegistroSolicitudBean.class);
	
	@EJB
	private	RegistrarFichaArbitroServiceLocal	registrarFichaArbitroService;

	@EJB
	private	BuscarContratacionesServiceLocal	buscarContratacionesService;
	ResourceBundle propSirenas = ResourceBundle.getBundle(ConstanteWeb.PROPERTIES);
	
	/**Variable sobre los Totales Cada Lista de Registro*/

	private boolean acreditaPorAcademica;
	private boolean acreditaPorDocencia;
	private boolean acreditaPorLaboral;
	private boolean acreditaPorPublico;
	
	private boolean habilitarFechaCese;
	
	private Integer valorReglaAcademica;
	private Integer valorReglaLaboral;
	private Integer valorReglaDocencia;
	private Integer valorReglaArbPublico;
	private Long 	valorReglaHorasMin;
	
	private Integer totalEspAcademicaContrataciones=0;
	private Integer totalEspAcademicaArbitraje=0;
	private Integer totalEspAcademicaDerechoAdm=0;

	private Integer totalDocenciaContrataciones=0;
	private Integer totalDocenciaArbitraje=0;
	private Integer totalDocenciaDerechoAdm=0;

	private Integer totalArbPublicoContrataciones=0;
	private Integer totalArbPublicoArbitraje=0;
	
	private Integer totalArbPrivadoArbitraje=0;

	private Integer mesesLaboralContratacion=0;
	private Integer mesesLaboralArbitraje=0;
	private Integer mesesLaboralDerechoAdm=0;
	
	private String totalLaboralContratacion;
	private String totalLaboralArbitraje;
	private String totalLaboralDerechoAdm;
	
	private Integer indexEspecialidad;
	private Integer indexCapacitacion;
	private Integer indexDocencia;	
	private Integer indexTrayectoriaArbitralPublic;
	private Integer indexTrayectoriaArbitralPriv;
	private Integer indexExperienciaLaboral;
    private RepositorioDatos repositorioDatos;

	private Boolean btnAgregarEspecialidad;
	private Boolean btnRectificarEspecialidad;
    
	private Boolean btnAgregarCapacitacion;
	private Boolean btnRectificarCapacitacion;
	
	private Boolean btnAgregarDocencia;
	private Boolean btnRectificarDocencia;
	
	private Boolean btnAgregarTrayectoriaPublica;
	private Boolean btnRectificarTrayectoriaPublica;
	
	private Boolean btnAgregarTrayectoriaPriv;
	private Boolean btnRectificarTrayectoriaPriv;
	
	private Boolean btnAgregarExperienciaLaboral;
	private Boolean btnRectificarExperienciaLaboral;
	
	private Boolean btnEliminar;
	private Boolean esPendiente;
	private Boolean esEditar;
	private Boolean otroCentroEstudios;
	private Boolean hablitarFecVigente;
	
	/**Buscador de Contrataciones*/
	private List<EntidadDTO> listaEntidadesDTO;
	private List<ObjetoContratacionDTO> listaObjetoContratacionDTO;
	private List<ProcesoProdDTO> listaProcesoProdDTO;
	private BusquedaContratoDTO busquedaContratoDTO;
	private BusquedaContratoDTO contratoSeleccionadoDTO;
	private List<BusquedaContratoDTO> listaContrataciones;
	/***************Formación Academica ************/

	
	private AuditoriaDTO auditoria;
	private FichaArbitralDTO fichaArbitral;
	private	CapacitacionDTO capacitacion;

	private RequestContext context; 
	
	/***************FIN*******************/
	private Integer indicadorEspecialidad;
	private String codTramite;

	/*************** Contrataciones- Arbitraje -----Derecho Administrativo  /*/

	private List<AcreditacionDTO> listaAcreditaciones; 
	private AcreditacionDTO acreditacionContrataciones; 
	private AcreditacionDTO acreditacionArbitraje; 
	private AcreditacionDTO acreditacionDerechoAdm;
	
	private EspecialidadAcademicaDTO arbEspecialAcademica;
	private List<EspecialidadAcademicaDTO> listaEspecialidadAcademicaCompleta;
	private List<EspecialidadAcademicaDTO> listaEspecialidadAcademicaOriginal;
	private List<EspecialidadAcademicaDTO> listaEspecialidadAcademicaActualizacion;
	
	private	CapacitacionDTO arbEspecialCapacitacion;
	private	List<CapacitacionDTO> listaEspecialCapacitacionCompleta;
	private	List<CapacitacionDTO> listaEspecialCapacitacionOriginal;
	private	List<CapacitacionDTO> listaEspecialCapacitacionActualizacion;
	
	private	DocenciaDTO arbEspecialDocencia;
	private	List<DocenciaDTO> listaEspecialDocenciaCompleta;
	private	List<DocenciaDTO> listaEspecialDocenciaOriginal;
	private	List<DocenciaDTO> listaEspecialDocenciaActualizacion;
	
	private	TrayectoriaArbitralDTO arbEspecialTrayectoriaArbitralPublic;
	private	List<TrayectoriaArbitralDTO> listaTrayectoriaArbitralPublicoCompleta;
	private	List<TrayectoriaArbitralDTO> listaTrayectoriaArbitralPublicoOriginal;
	private	List<TrayectoriaArbitralDTO> listaTrayectoriaArbitralPublicoActualizacion;
	
	private	TrayectoriaArbitralDTO arbEspecialTrayectoriaArbitralPriv;
	private	List<TrayectoriaArbitralDTO> listaTrayectoriaArbitralPrivadoCompleta;
	private	List<TrayectoriaArbitralDTO> listaTrayectoriaArbitralPrivadoOriginal;
	private	List<TrayectoriaArbitralDTO> listaTrayectoriaArbitralPrivadoActualizacion;
	
	private	ExperienciaLaboralDTO  arbEspecialExperienciaLaboral;
	private	List<ExperienciaLaboralDTO> listaExperienciaLaboralCompleta;
	private	List<ExperienciaLaboralDTO> listaExperienciaLaboralOriginal;
	private	List<ExperienciaLaboralDTO> listaExperienciaLaboralActualizacion;

	private List<EspecialidadAcademicaDTO> listArbEspecialidadAcademicaHistorial;
	private	List<CapacitacionDTO> listArbEspecialCapacitacionHistorial;
	private	List<DocenciaDTO> listArbEspecialDocenciaHistorial;
	private	List<TrayectoriaArbitralDTO> listArbEspecialTrayectoriaArbitralPublicHistorial;
	private	List<TrayectoriaArbitralDTO> listArbEspecialTrayectoriaArbitralPrivHistorial;
	private	List<ExperienciaLaboralDTO> listArbEspecialExperienciaLaboralHistorial;
	
	
	private	TrayectoriaArbitralDTO experienciaArbitral;
	private	List<TrayectoriaArbitralDTO> listExperienciaArbitral;

	
	
	/******FIN 
	 * @throws ParseException ************/

	/**
	 * Resumen.	Metodo que iniciliza la bandeja de evaluacion de quejas
	 * @return cadena mapeada para la navegacion, tipo String.
	 */	
	
	public void onChange(TabChangeEvent event) throws ParseException {
		String titulo=event.getTab().getTitle();
		establecerObjetoSession(ConstanteWeb.IND_CARGAR_LISTAS, false);		
		this.esEditar=false;
		this.otroCentroEstudios=true;
		this.hablitarFecVigente=false;
		this.habilitarFechaCese=false;
		repositorioDatos=obtenerRepositorioDatos();
		fichaArbitral=(FichaArbitralDTO)obtenerObjetoSession(ConstanteWeb.FICHA_REGISTRO); 
		/**Valido si ya se cargaron las listas de Especialidades*/
		boolean indCargarListas=(boolean)obtenerObjetoSession(ConstanteWeb.IND_CARGAR_LISTAS);
		if(!indCargarListas){
			cargaListasEspecializacion();
			establecerObjetoSession(ConstanteWeb.IND_CARGAR_LISTAS, true);
		}
						
		if(titulo.equals(propSirenas.getString(ConstanteWeb.ETIQ_ARB_ACADEMICO))){
               //indicadorEspecialidad=Long.parseLong(ConstanteWeb.ESPECIALIDAD_CONTRATACIONES);
		}
		if(titulo.equals(propSirenas.getString(ConstanteWeb.ETIQ_ARB_CONTRATACIONES))){
			this.indicadorEspecialidad=ConstanteWeb.ESPECIALIDAD_CONTRATACIONES;
	               
		}
		if(titulo.equals(propSirenas.getString(ConstanteWeb.ETIQ_ARB_ARBITRAJE))){
			this.indicadorEspecialidad=ConstanteWeb.ESPECIALIDAD_ARBITRAJE;
		}
		if(titulo.equals(propSirenas.getString(ConstanteWeb.ETIQ_ARB_DERECHO))){
			this.indicadorEspecialidad=ConstanteWeb.ESPECIALIDAD_DERECHO_ADM;
		}
		if(titulo.equals(propSirenas.getString(ConstanteWeb.ETIQ_ARB_MODALIDAD))){
			cargaListasEspecializacion();
		}
	}	
	
	private void cargaListasEspecializacion(){		
		valorReglaAcademica= obtieneRegla(propSirenas.getString(ConstanteWeb.REG_ACADEMICA_TOTAL_HORAS));
		valorReglaLaboral=obtieneRegla(propSirenas.getString(ConstanteWeb.REG_LABORAL_TOTAL));
		valorReglaDocencia=obtieneRegla(propSirenas.getString(ConstanteWeb.REG_DOCENCIA_TOTAL));
		valorReglaArbPublico=obtieneRegla(propSirenas.getString(ConstanteWeb.REG_ARB_PUBLICO_TOTAL));
		valorReglaHorasMin=obtieneRegla(propSirenas.getString(ConstanteWeb.REG_ACADEMICA_TOTAL_HORAS)).longValue();
		limpiarObjetos();
		ObtenerListaAcreditaciones();
		ObtenerListaEspAcademica();
		ObtenerListaEspDocencia();
		ObtenerListaEspCapacitacion();
		ObtenerListaArbitrajePublico();
		ObtenerListaArbitrajePrivado();
		ObtenerListaExpLaboral();
		inicializaBotonera();
		validarEstadoFicha();
	}
	
	

	private void validarEstadoFicha(){
		Long estado=this.fichaArbitral.getIdEstadoFicha();
		if(estado!=Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE))){
			this.btnEliminar=false;
			this.esPendiente=false;
		}
		else
		{
			this.btnEliminar=true;
			this.esPendiente=true;
		}	
		
	}
	private void inicializaBotonera(){

		btnAgregarEspecialidad=true;
		btnRectificarEspecialidad=false;

		btnAgregarCapacitacion=true;
		btnRectificarCapacitacion=false;
		
		btnAgregarDocencia=true;
		btnRectificarDocencia=false;
		
		btnAgregarExperienciaLaboral=true;
		btnRectificarExperienciaLaboral=false;
		
		btnAgregarTrayectoriaPriv=true;
		btnRectificarTrayectoriaPriv=false;
		
		btnAgregarTrayectoriaPublica=true;
		btnRectificarTrayectoriaPublica=false;
	}

	public void ObtenerListaAcreditaciones(){
		try {
			this.listaAcreditaciones=registrarFichaArbitroService.obtenerListaAcreditaciones(this.fichaArbitral.getIdFicha());

			if (listaAcreditaciones != null) {
				for (AcreditacionDTO acreditacionDTO : listaAcreditaciones) {
					if(acreditacionDTO.getIndEspecialidad().equals(ConstanteWeb.ESPECIALIDAD_CONTRATACIONES)){
						this.acreditacionContrataciones=acreditacionDTO;
					}
					if(acreditacionDTO.getIndEspecialidad().equals(ConstanteWeb.ESPECIALIDAD_ARBITRAJE)){
						this.acreditacionArbitraje=acreditacionDTO;
					}
					if(acreditacionDTO.getIndEspecialidad().equals(ConstanteWeb.ESPECIALIDAD_DERECHO_ADM)){
						this.acreditacionDerechoAdm=acreditacionDTO;
					}
				}
			}else{
				this.listaAcreditaciones=new ArrayList<AcreditacionDTO>();
			}
			establecerObjetoSession(ConstanteWeb.LISTA_ACREDITACIONES, this.listaAcreditaciones);
		} catch (Exception e) {
			e.printStackTrace();
		}	
	}

	public void ObtenerListaEspAcademica(){
		this.listaEspecialidadAcademicaOriginal=new ArrayList<EspecialidadAcademicaDTO>();
		this.listaEspecialidadAcademicaActualizacion=new ArrayList<EspecialidadAcademicaDTO>();
		indexEspecialidad=1;
		try {
			this.listaEspecialidadAcademicaCompleta=registrarFichaArbitroService.obtenerFichaExpecialidadAcademica(this.fichaArbitral.getIdFicha());

			if (listaEspecialidadAcademicaCompleta != null) {
				for (EspecialidadAcademicaDTO especialidadAcademicaDTO : listaEspecialidadAcademicaCompleta) {
					especialidadAcademicaDTO.setIdEstadoFicha(this.fichaArbitral.getIdEstadoFicha());
					especialidadAcademicaDTO.setIndex(indexEspecialidad);
					especialidadAcademicaDTO.setDescripcionGrado(especialidadAcademicaDTO.getDescripcionGrado().toUpperCase());
					if(especialidadAcademicaDTO.getDescripcionOtroCentro()!=null)
						especialidadAcademicaDTO.setDescripcionOtroCentro(especialidadAcademicaDTO.getDescripcionOtroCentro().toUpperCase());
					especialidadAcademicaDTO.setDescTipoFormacion(repositorioDatos.getLabelParametro(especialidadAcademicaDTO.getIndTipoFormacion().longValue()).toUpperCase());
					especialidadAcademicaDTO.setDescPais(repositorioDatos.getLabelPais(especialidadAcademicaDTO.getIdPais().longValue()).toUpperCase());
					especialidadAcademicaDTO.setDescAreaProfesion(repositorioDatos.getLabelAreaProfesion(especialidadAcademicaDTO.getIdAreaProfesion()).toUpperCase());
					especialidadAcademicaDTO.setDescCentroEstudios(repositorioDatos.getLabelCentroEstudios(especialidadAcademicaDTO.getIdCentroEstudios()).toUpperCase());
					especialidadAcademicaDTO.setDescGradoObtenido(repositorioDatos.getLabelParametro(especialidadAcademicaDTO.getIndGradoObtenido().longValue()).toUpperCase());
					indexEspecialidad++;
					
					if(especialidadAcademicaDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
						this.listaEspecialidadAcademicaOriginal.add(especialidadAcademicaDTO);
					}else {
						this.listaEspecialidadAcademicaActualizacion.add(especialidadAcademicaDTO);
					}
				}
			}else{
				this.listaEspecialidadAcademicaCompleta=new ArrayList<EspecialidadAcademicaDTO>();
			}
			calculaTotalEspAcademica();
			establecerObjetoSession(ConstanteWeb.LISTA_ESPECIALIZACION, this.listaEspecialidadAcademicaCompleta);
		} catch (Exception e) {
			e.printStackTrace();
		}	
	}
	
	public void distribuirListaEspecialidad(){
		this.listaEspecialidadAcademicaOriginal=new ArrayList<EspecialidadAcademicaDTO>();
		this.listaEspecialidadAcademicaActualizacion=new ArrayList<EspecialidadAcademicaDTO>();

		for (EspecialidadAcademicaDTO especialidadAcademicaDTO : listaEspecialidadAcademicaCompleta) {
			if(especialidadAcademicaDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
				this.listaEspecialidadAcademicaOriginal.add(especialidadAcademicaDTO);
			}else {
				this.listaEspecialidadAcademicaActualizacion.add(especialidadAcademicaDTO);
			}
		}
	}

	public void ObtenerListaEspDocencia(){
		this.listaEspecialDocenciaActualizacion=new ArrayList<DocenciaDTO>();
		this.listaEspecialDocenciaOriginal=new ArrayList<DocenciaDTO>();
		indexDocencia=1;
		try {
			this.listaEspecialDocenciaCompleta=registrarFichaArbitroService.obtenerFichaDocencia(this.fichaArbitral.getIdFicha());
			
			if (listaEspecialDocenciaCompleta!= null) {
				for (DocenciaDTO docenciaDTO : listaEspecialDocenciaCompleta) {
					docenciaDTO.setIdEstadoFicha(this.fichaArbitral.getIdEstadoFicha());
					docenciaDTO.setIndex(indexDocencia);
					docenciaDTO.setDescripcionCurso(docenciaDTO.getDescripcionCurso().toUpperCase());					
					docenciaDTO.setDescCentroEstudios(repositorioDatos.getLabelCentroEstudios(docenciaDTO.getIdCentroEstudios().longValue()).toUpperCase().toUpperCase());
					docenciaDTO.setDescTipoActividad(repositorioDatos.getLabelParametro(docenciaDTO.getIndTipoActividad().longValue()).toUpperCase().toUpperCase());
					docenciaDTO.setDescTipoDuracion(repositorioDatos.getLabelParametro(docenciaDTO.getIndTipoDuracion().longValue()).toUpperCase());

					if(docenciaDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
						this.listaEspecialDocenciaOriginal.add(docenciaDTO);
					}else {
						this.listaEspecialDocenciaActualizacion.add(docenciaDTO);
					}
					indexDocencia++;
				}								  
			}else{
				this.listaEspecialDocenciaCompleta=new ArrayList<DocenciaDTO>();
			}
			calculaTotalDocencia();
			establecerObjetoSession(ConstanteWeb.LISTA_DOCENCIA, this.listaEspecialDocenciaCompleta);	
		} catch (Exception e) {
			e.printStackTrace();
		}	
	}

	public void distribuirListaDocencia(){
		this.listaEspecialDocenciaActualizacion=new ArrayList<DocenciaDTO>();
		this.listaEspecialDocenciaOriginal=new ArrayList<DocenciaDTO>();

		for (DocenciaDTO docenciaDTO : listaEspecialDocenciaCompleta) {
			if(docenciaDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
				this.listaEspecialDocenciaOriginal.add(docenciaDTO);
			}else {
				this.listaEspecialDocenciaActualizacion.add(docenciaDTO);
			}
		}
	}

	public void ObtenerListaEspCapacitacion(){
		this.listaEspecialCapacitacionActualizacion=new ArrayList<CapacitacionDTO>();
		this.listaEspecialCapacitacionOriginal=new ArrayList<CapacitacionDTO>();
		indexCapacitacion=1;
		try {
			this.listaEspecialCapacitacionCompleta=registrarFichaArbitroService.obtenerFichaCapacitacion(this.fichaArbitral.getIdFicha());
			
			if (listaEspecialCapacitacionCompleta != null) {
				for (CapacitacionDTO capacitacionDTO : listaEspecialCapacitacionCompleta) {
					capacitacionDTO.setIdEstadoFicha(this.fichaArbitral.getIdEstadoFicha());
					capacitacionDTO.setNomCapacitacion(capacitacionDTO.getNomCapacitacion().toUpperCase());
					capacitacionDTO.setNomInstitucion(capacitacionDTO.getNomInstitucion().toUpperCase());
					capacitacionDTO.setIndex(indexCapacitacion);
					
					if(capacitacionDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
						this.listaEspecialCapacitacionOriginal.add(capacitacionDTO);
					}else {
						this.listaEspecialCapacitacionActualizacion.add(capacitacionDTO);
					}
					
					indexCapacitacion++;
				}
				establecerObjetoSession(ConstanteWeb.LISTA_CAPACITACION, this.listaEspecialCapacitacionCompleta);
			}
			else
			{
				this.listaEspecialCapacitacionCompleta= new ArrayList<CapacitacionDTO>();
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}	
	}

	public void distribuirListaCapacitacion(){
		this.listaEspecialCapacitacionActualizacion=new ArrayList<CapacitacionDTO>();
		this.listaEspecialCapacitacionOriginal=new ArrayList<CapacitacionDTO>();

		for (CapacitacionDTO capacitacionDTO : listaEspecialCapacitacionCompleta) {
			if(capacitacionDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
				this.listaEspecialCapacitacionOriginal.add(capacitacionDTO);
			}else {
				this.listaEspecialCapacitacionActualizacion.add(capacitacionDTO);
			}
		}
	}
	public void ObtenerListaArbitrajePublico(){
		this.listaTrayectoriaArbitralPublicoActualizacion=new ArrayList<TrayectoriaArbitralDTO>();
		this.listaTrayectoriaArbitralPublicoOriginal=new ArrayList<TrayectoriaArbitralDTO>();
		indexTrayectoriaArbitralPublic=1;
		try {
			this.listaTrayectoriaArbitralPublicoCompleta=registrarFichaArbitroService.obtenerFichaTrayectoria(this.fichaArbitral.getIdFicha(),"PUBLICA");
			
			if (this.listaTrayectoriaArbitralPublicoCompleta!= null) {
				for (TrayectoriaArbitralDTO trayectoriaArbitralDTO : listaTrayectoriaArbitralPublicoCompleta) {
					trayectoriaArbitralDTO.setIdEstadoFicha(this.fichaArbitral.getIdEstadoFicha());
					trayectoriaArbitralDTO.setIndex(indexTrayectoriaArbitralPublic);
					trayectoriaArbitralDTO.setNomEntidad(trayectoriaArbitralDTO.getNomEntidad().toUpperCase());
					trayectoriaArbitralDTO.setNomContratista(trayectoriaArbitralDTO.getNomContratista().toUpperCase());
					trayectoriaArbitralDTO.setObjContratacion(trayectoriaArbitralDTO.getObjContratacion().toUpperCase());
					trayectoriaArbitralDTO.setNumContrato(trayectoriaArbitralDTO.getNumContrato().toUpperCase());
					trayectoriaArbitralDTO.setProcesoSeleccion(trayectoriaArbitralDTO.getProcesoSeleccion().toUpperCase());					
					trayectoriaArbitralDTO.setListaMateriaControvertida(convertirListaMateriaControvertida(trayectoriaArbitralDTO.getIdesMateriaControvertida()));
					trayectoriaArbitralDTO.setDescTipoArbitraje(repositorioDatos.getLabelParametro(trayectoriaArbitralDTO.getIndTipoArbitraje().longValue()).toUpperCase());
					
					if(trayectoriaArbitralDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
						this.listaTrayectoriaArbitralPublicoOriginal.add(trayectoriaArbitralDTO);
					}else {
						this.listaTrayectoriaArbitralPublicoActualizacion.add(trayectoriaArbitralDTO);
					}
					
					indexTrayectoriaArbitralPublic++;
				}
			}else{
				this.listaTrayectoriaArbitralPublicoCompleta=new ArrayList<TrayectoriaArbitralDTO>();
			}
			calculaTotalArbPublico();
			establecerObjetoSession(ConstanteWeb.LISTA_ARBITRAJE_PUB, this.listaTrayectoriaArbitralPublicoCompleta);
		} catch (Exception e) {
			e.printStackTrace();
		}	
	}

	public void distribuirListaArbitrajePublico(){
		this.listaTrayectoriaArbitralPublicoActualizacion=new ArrayList<TrayectoriaArbitralDTO>();
		this.listaTrayectoriaArbitralPublicoOriginal=new ArrayList<TrayectoriaArbitralDTO>();

		for (TrayectoriaArbitralDTO trayectoriaArbitralDTO : this.listaTrayectoriaArbitralPublicoCompleta) {
			if(trayectoriaArbitralDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
				this.listaTrayectoriaArbitralPublicoOriginal.add(trayectoriaArbitralDTO);
			}else {
				this.listaTrayectoriaArbitralPublicoActualizacion.add(trayectoriaArbitralDTO);
			}
		}
	}
	public void ObtenerListaArbitrajePrivado(){
		this.listaTrayectoriaArbitralPrivadoActualizacion=new ArrayList<TrayectoriaArbitralDTO>();
		this.listaTrayectoriaArbitralPrivadoOriginal=new ArrayList<TrayectoriaArbitralDTO>();
		indexTrayectoriaArbitralPriv=1;
		try {
			this.listaTrayectoriaArbitralPrivadoCompleta=registrarFichaArbitroService.obtenerFichaTrayectoria(this.fichaArbitral.getIdFicha(),"PRIVADO");
			
			if (listaTrayectoriaArbitralPrivadoCompleta!= null) {
				for (TrayectoriaArbitralDTO trayectoriaArbitralDTO : listaTrayectoriaArbitralPrivadoCompleta) {
					trayectoriaArbitralDTO.setIdEstadoFicha(this.fichaArbitral.getIdEstadoFicha());
					trayectoriaArbitralDTO.setIndex(indexTrayectoriaArbitralPriv);
					
					trayectoriaArbitralDTO.setNomEntidad(trayectoriaArbitralDTO.getNomEntidad().toUpperCase());
					trayectoriaArbitralDTO.setNomContratista(trayectoriaArbitralDTO.getNomContratista().toUpperCase());					
					trayectoriaArbitralDTO.setNumContrato(trayectoriaArbitralDTO.getNumContrato().toUpperCase());						
					trayectoriaArbitralDTO.setDescMateriaControvertida(repositorioDatos.getLabelMateriaControversia(Long.parseLong(trayectoriaArbitralDTO.getIdesMateriaControvertida())).toUpperCase());
					trayectoriaArbitralDTO.setDescTipoArbitraje(repositorioDatos.getLabelParametro(trayectoriaArbitralDTO.getIndTipoArbitraje().longValue()).toUpperCase());
					
					if(trayectoriaArbitralDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
						this.listaTrayectoriaArbitralPrivadoOriginal.add(trayectoriaArbitralDTO);
					}else {
						this.listaTrayectoriaArbitralPrivadoActualizacion.add(trayectoriaArbitralDTO);
					}
					
					indexTrayectoriaArbitralPriv++;
				}
				establecerObjetoSession(ConstanteWeb.LISTA_ARBITRAJE_PRIV, this.listaTrayectoriaArbitralPrivadoCompleta);
			}else{
				this.listaTrayectoriaArbitralPrivadoCompleta=new ArrayList<TrayectoriaArbitralDTO>();
			}
			calculaTotalArbPrivado();
		} catch (Exception e) {
			e.printStackTrace();
		}	
	}
	public void distribuirListaArbitrajePrivado(){
		this.listaTrayectoriaArbitralPrivadoActualizacion=new ArrayList<TrayectoriaArbitralDTO>();
		this.listaTrayectoriaArbitralPrivadoOriginal=new ArrayList<TrayectoriaArbitralDTO>();

		for (TrayectoriaArbitralDTO trayectoriaArbitralDTO : this.listaTrayectoriaArbitralPrivadoCompleta) {
			if(trayectoriaArbitralDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
				this.listaTrayectoriaArbitralPrivadoOriginal.add(trayectoriaArbitralDTO);
			}else {
				this.listaTrayectoriaArbitralPrivadoActualizacion.add(trayectoriaArbitralDTO);
			}
		}
	}
	public String convertAString(boolean indicador){
		if(indicador==true){
			return "SI";
		}else{
			return "NO";
		}
		
	}
	public void ObtenerListaExpLaboral(){
		this.listaExperienciaLaboralActualizacion=new ArrayList<ExperienciaLaboralDTO>();
		this.listaExperienciaLaboralOriginal=new ArrayList<ExperienciaLaboralDTO>();
		indexExperienciaLaboral=1;
		try {
			this.listaExperienciaLaboralCompleta=registrarFichaArbitroService.obtenerFichaExpLaboral(this.fichaArbitral.getIdFicha());
			
			if (listaExperienciaLaboralCompleta!= null) {
				for (ExperienciaLaboralDTO experienciaLaboralDTO : listaExperienciaLaboralCompleta) {
					experienciaLaboralDTO.setIdEstadoFicha(this.fichaArbitral.getIdEstadoFicha());
					experienciaLaboralDTO.setNomCentroTrabajo(experienciaLaboralDTO.getNomCentroTrabajo().toUpperCase());
					experienciaLaboralDTO.setDescripcionCargo(experienciaLaboralDTO.getDescripcionCargo().toUpperCase());
					experienciaLaboralDTO.setVigente(convertAString(experienciaLaboralDTO.getIndicadorActual()));
					experienciaLaboralDTO.setIndice(indexExperienciaLaboral);
					
					if(experienciaLaboralDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
						this.listaExperienciaLaboralOriginal.add(experienciaLaboralDTO);
					}else {
						this.listaExperienciaLaboralActualizacion.add(experienciaLaboralDTO);
					}
					
					indexExperienciaLaboral++;
				}
				establecerObjetoSession(ConstanteWeb.LISTA_EXP_LABORAL, this.listaExperienciaLaboralCompleta);
			}else{
				this.listaExperienciaLaboralCompleta= new ArrayList<ExperienciaLaboralDTO>();
			}
			calculaTotalExpLaboral();
			
		} catch (Exception e) {
			e.printStackTrace();
		}	
	}

	public void distribuirListaLaboral(){
		this.listaExperienciaLaboralActualizacion=new ArrayList<ExperienciaLaboralDTO>();
		this.listaExperienciaLaboralOriginal=new ArrayList<ExperienciaLaboralDTO>();

		for (ExperienciaLaboralDTO experienciaLaboralDTO : listaExperienciaLaboralCompleta) {
			if(experienciaLaboralDTO.getCodRegistro().equals(CODIGO_REGISTRO.ORIGINAL.getId())){
				this.listaExperienciaLaboralOriginal.add(experienciaLaboralDTO);
			}else {
				this.listaExperienciaLaboralActualizacion.add(experienciaLaboralDTO);
			}
		}
	}
	public void limpiarObjetos(){		
		this.acreditacionContrataciones=null;
		this.acreditacionArbitraje=null;
		this.acreditacionDerechoAdm=null;
		this.codTramite="";
		this.arbEspecialAcademica= new EspecialidadAcademicaDTO();
		this.arbEspecialCapacitacion= new CapacitacionDTO();
		this.arbEspecialDocencia = new DocenciaDTO();
		this.arbEspecialTrayectoriaArbitralPriv= new TrayectoriaArbitralDTO();
		this.arbEspecialTrayectoriaArbitralPublic = new TrayectoriaArbitralDTO();
		this.arbEspecialExperienciaLaboral= new ExperienciaLaboralDTO();	
		
		
		 this.listArbEspecialidadAcademicaHistorial= new ArrayList<EspecialidadAcademicaDTO>();
		 this.listArbEspecialCapacitacionHistorial= new ArrayList<CapacitacionDTO>();
		 this.listArbEspecialDocenciaHistorial= new ArrayList<DocenciaDTO>();
		 this.listArbEspecialTrayectoriaArbitralPublicHistorial= new ArrayList<TrayectoriaArbitralDTO>();
		 this.listArbEspecialTrayectoriaArbitralPrivHistorial= new ArrayList<TrayectoriaArbitralDTO>();
		 this.listArbEspecialExperienciaLaboralHistorial= new ArrayList<ExperienciaLaboralDTO>();
		 
		 this.experienciaArbitral = new TrayectoriaArbitralDTO();
		 this.listExperienciaArbitral = new ArrayList<TrayectoriaArbitralDTO>();
		
		establecerObjetoSession(ConstanteWeb.LISTA_ESPECIALIZACION, this.listaEspecialidadAcademicaCompleta);
		establecerObjetoSession(ConstanteWeb.LISTA_DOCENCIA, this.listaEspecialDocenciaCompleta);	
		establecerObjetoSession(ConstanteWeb.LISTA_CAPACITACION, this.listaEspecialCapacitacionCompleta);
		establecerObjetoSession(ConstanteWeb.LISTA_ARBITRAJE_PUB, this.listaTrayectoriaArbitralPublicoCompleta);
		establecerObjetoSession(ConstanteWeb.LISTA_ARBITRAJE_PRIV, this.listaTrayectoriaArbitralPrivadoCompleta);
		establecerObjetoSession(ConstanteWeb.LISTA_EXP_LABORAL, this.listaExperienciaLaboralCompleta);
		
		
	}

	public void cerrarEspAcademicaPopup(){
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogExperiencia').hide();");
	}
	public void abrirEspAcademicaPopup(){
		limpiarObjetos();
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogExperiencia').show();");
	}
	
	public void mostrarCentrosEstudiosExtranjero(ValueChangeEvent event ){
		
		Long seleccioando=Long.parseLong(event.getNewValue().toString().trim());		
		if(seleccioando!=Long.parseLong(propSirenas.getString(ConstanteWeb.ID_CENTRO_ESTUDIOSEXTRANJERO)))
		{
			this.arbEspecialAcademica.setIdPais(Long.parseLong(propSirenas.getString(ConstanteWeb.ID_PERU)));
			this.otroCentroEstudios=true;
		}
		else
		{
			this.arbEspecialAcademica.setIdPais(Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO)));
			this.otroCentroEstudios=false;
		}
	
	}
	
	public void habilitarFecVigente(ValueChangeEvent event ){
			
			boolean seleccioando=Boolean.parseBoolean(event.getNewValue().toString());
			if(seleccioando)
			{
				this.hablitarFecVigente=true;
				System.out.println("true");
			}
			else
			{
				this.hablitarFecVigente=false;
				System.out.println("false");
			}
	}
	public void agregarEspecialidadAcademicaPopup(){
		if(validaFormAcademica()){	
			if(ValidadReglaEspecialidadAcademica())
			{		
				this.arbEspecialAcademica.setIndex(indexEspecialidad);
				this.arbEspecialAcademica.setIndEspecialidad(indicadorEspecialidad.intValue());
				this.arbEspecialAcademica.setIdFicha(this.fichaArbitral.getIdFicha());
				this.arbEspecialAcademica.setDescripcionGrado(this.arbEspecialAcademica.getDescripcionGrado().toUpperCase());
				this.arbEspecialAcademica.setDescAreaProfesion(repositorioDatos.getLabelAreaProfesion(arbEspecialAcademica.getIdAreaProfesion()).toUpperCase());
				this.arbEspecialAcademica.setDescCentroEstudios(repositorioDatos.getLabelCentroEstudios(arbEspecialAcademica.getIdCentroEstudios()).toUpperCase());
				this.arbEspecialAcademica.setDescGradoObtenido(repositorioDatos.getLabelParametro(arbEspecialAcademica.getIndGradoObtenido()).toUpperCase());
				this.arbEspecialAcademica.setDescPais(repositorioDatos.getLabelPais(arbEspecialAcademica.getIdPais().longValue()).toUpperCase());
				this.arbEspecialAcademica.setDescTipoFormacion(repositorioDatos.getLabelParametro(arbEspecialAcademica.getIndTipoFormacion().longValue()));

				if(this.fichaArbitral.getIdEstadoFicha()==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE))){
					arbEspecialAcademica.setCodRegistro(CODIGO_REGISTRO.ORIGINAL.getId() );
				}else{
					arbEspecialAcademica.setCodRegistro(CODIGO_REGISTRO.ACTUALIZACION.getId() );
				}
				
				this.listaEspecialidadAcademicaCompleta.add(this.arbEspecialAcademica);
				indexEspecialidad++;
				this.arbEspecialAcademica= new EspecialidadAcademicaDTO();
				distribuirListaEspecialidad();
				cerrarEspAcademicaPopup();
				calculaTotalEspAcademica();
			}
		}	
	}
	public void calculaTotalEspAcademica(){
		totalEspAcademicaContrataciones=0;
		totalEspAcademicaArbitraje=0;
		totalEspAcademicaDerechoAdm=0;
		for (EspecialidadAcademicaDTO especialidadAcademicaDTO : listaEspecialidadAcademicaCompleta) {
			if(especialidadAcademicaDTO.getEstado()==1L){//Solo contabilizo Registros Activos
				if(especialidadAcademicaDTO.getIndEspecialidad()==ConstanteWeb.ESPECIALIDAD_CONTRATACIONES){
					totalEspAcademicaContrataciones+=especialidadAcademicaDTO.getDuracion().intValue();
				}if(especialidadAcademicaDTO.getIndEspecialidad()==ConstanteWeb.ESPECIALIDAD_ARBITRAJE){
					totalEspAcademicaArbitraje+=especialidadAcademicaDTO.getDuracion().intValue();
				}if(especialidadAcademicaDTO.getIndEspecialidad()==ConstanteWeb.ESPECIALIDAD_DERECHO_ADM){
					totalEspAcademicaDerechoAdm+=especialidadAcademicaDTO.getDuracion().intValue();
				}
			}
		}
	}

	public boolean ValidadReglaEspecialidadAcademica()
	{
	
		boolean validacion=true;
		Long valor=obtieneRegla(propSirenas.getString(ConstanteWeb.REG_ACADEMICA_MIN_HORAS)).longValue();
		if(arbEspecialAcademica.getDuracion()<valor)
		{
			String mensaje=propSirenas.getString(ConstanteWeb.MSJ_REGLA_DURACION)+" " + valor.toString() +" "+ propSirenas.getString(ConstanteWeb.MSJ_REGLA_DURACIONDOS);
			setMensajeroError(mensaje,"");
			return false;			
		}
		return validacion;
	}
	
	public boolean validaFormAcademica(){
		boolean validacion=true;
		if(arbEspecialAcademica.getIdCentroEstudios()<=0)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_CENTRO_ESTUDIOS), "");
			return false;
								
		}
		else
		{
			if(arbEspecialAcademica.getIdCentroEstudios()==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_CENTRO_ESTUDIOSEXTRANJERO)))
			{
				if(arbEspecialAcademica.getDescripcionOtroCentro()==null || arbEspecialAcademica.getDescripcionOtroCentro().trim().equals(""))
				{
					setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_CENTRO_ESTUDIOS_EXTRANJERO), "");
					return false;
				}
			}
		}
		if(arbEspecialAcademica.getIdPais()<=0){
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_PAIS), "");
			return false;
			
		}	
		if(arbEspecialAcademica.getIdAreaProfesion()<=0)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_AREAPROFESION), "");			
			return false;
			
		}	
		if(arbEspecialAcademica.getDescripcionGrado()==null || arbEspecialAcademica.getDescripcionGrado().trim().equals(""))
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_DESC_GRADOTITULO), "");
			return false;
			
		}	
		if(arbEspecialAcademica.getIndGradoObtenido()<=0)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_GRADO_TITULOOBTENIDO), "");
			return false;
						
		}
		if(arbEspecialAcademica.getDuracion()==null || arbEspecialAcademica.getDuracion()==0)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_HORAS_ACADEMICAS), "");
			return false;			
		}
		if(arbEspecialAcademica.getFecEgreso()==null)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_FEC_GRADOTITULO), "");
			return false;
			
		}
			
		return validacion;
	}
	
	
	
	
	public void cerrarCapacitacionPopup(){
		RequestContext context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogCapacitacion').hide();");
	}
	public void abrirCapacitacionPopup(){
		limpiarObjetos();
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogCapacitacion').show();");
	}
	public void agregarCapacitacionPopup(){
		if(validaCapacitacion()){
			if(validarFechasCapacitacion())
			{
				this.arbEspecialCapacitacion.setIndex(indexCapacitacion);
				arbEspecialCapacitacion.setIndEspecialidad(indicadorEspecialidad.intValue());		
				arbEspecialCapacitacion.setIdFicha(this.fichaArbitral.getIdFicha());
				arbEspecialCapacitacion.setNomInstitucion(this.arbEspecialCapacitacion.getNomInstitucion().toUpperCase());
				arbEspecialCapacitacion.setNomCapacitacion(this.arbEspecialCapacitacion.getNomCapacitacion().toUpperCase());

				if(this.fichaArbitral.getIdEstadoFicha()==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE))){
					arbEspecialCapacitacion.setCodRegistro(CODIGO_REGISTRO.ORIGINAL.getId() );
				}else{
					arbEspecialCapacitacion.setCodRegistro(CODIGO_REGISTRO.ACTUALIZACION.getId() );
				}
				
				this.listaEspecialCapacitacionCompleta.add(this.arbEspecialCapacitacion);
				indexCapacitacion++;
				this.arbEspecialCapacitacion= new CapacitacionDTO();
				distribuirListaCapacitacion();
				cerrarCapacitacionPopup();
			}
		}
	}

	public boolean validarFechasCapacitacion(){
		boolean confirmacion=true;
		if(arbEspecialCapacitacion.getFecFin().compareTo(arbEspecialCapacitacion.getFecInicio())<0)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REGLA_FECHAS),"");
			return false;
		}

		return confirmacion;
	}
	
	public boolean validaCapacitacion(){
		boolean confirmacion=true;
		if(arbEspecialCapacitacion.getNomCapacitacion()==null || arbEspecialCapacitacion.getNomCapacitacion().trim().equals(""))
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_DESCRIPCION_CURSO),"");
			return false;
		}		
			
		if( arbEspecialCapacitacion.getFecInicio()==null)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_FECHAINICIO),"");
			return false;
		}
		if(arbEspecialCapacitacion.getFecFin()==null)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_FECHAFIN),"");
			return false;
		}
			
		if(arbEspecialCapacitacion.getDuracion()==null || arbEspecialCapacitacion.getDuracion()<=0)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_HORAS_ACADEMICAS),"");
			return false;
		}
		
		if(arbEspecialCapacitacion.getNomInstitucion()==null || arbEspecialCapacitacion.getNomInstitucion().trim().equals(""))
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_INSTITUCION_ORGANIZADORA),"");
			return false;
		}
		
			return confirmacion;
	}
	public void cerrarDocenciaPopup(){
		RequestContext context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogDocencia').hide();");
	}
	public void abrirDocenciaPopup(){
		limpiarObjetos();
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogDocencia').show();");
	}
	public void agregarDocenciaPopup(){
		if(validaDocencia()){
			this.arbEspecialDocencia.setIndex(indexDocencia);
			arbEspecialDocencia.setIndEspecialidad(indicadorEspecialidad);
			arbEspecialDocencia.setIdFicha(this.fichaArbitral.getIdFicha());
			arbEspecialDocencia.setDescripcionCurso(arbEspecialDocencia.getDescripcionCurso().toUpperCase());
			arbEspecialDocencia.setDescCentroEstudios(repositorioDatos.getLabelCentroEstudios(arbEspecialDocencia.getIdCentroEstudios()).toUpperCase());
			arbEspecialDocencia.setDescTipoActividad(repositorioDatos.getLabelParametro(arbEspecialDocencia.getIndTipoActividad()).toUpperCase());
			arbEspecialDocencia.setDescTipoDuracion(repositorioDatos.getLabelParametro(arbEspecialDocencia.getIndTipoDuracion()).toUpperCase());	

			if(this.fichaArbitral.getIdEstadoFicha()==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE))){
				arbEspecialDocencia.setCodRegistro(CODIGO_REGISTRO.ORIGINAL.getId() );
			}else{
				arbEspecialDocencia.setCodRegistro(CODIGO_REGISTRO.ACTUALIZACION.getId() );
			}
			
			this.listaEspecialDocenciaCompleta.add(this.arbEspecialDocencia);
			indexDocencia++;
			this.arbEspecialDocencia= new DocenciaDTO();	
			distribuirListaDocencia();
			cerrarDocenciaPopup();
			calculaTotalDocencia();
		}
	}
	public void calculaTotalDocencia(){
		totalDocenciaContrataciones=0;
		totalDocenciaArbitraje=0;
		totalDocenciaDerechoAdm=0;
		for (DocenciaDTO docenciaDTO : this.listaEspecialDocenciaCompleta) {
			if(docenciaDTO.getEstado()==1L){//Solo contabilizo Registros Activos
				if(docenciaDTO.getIndEspecialidad()==ConstanteWeb.ESPECIALIDAD_CONTRATACIONES){
					totalDocenciaContrataciones+=obtenerHoraPorTipoDuracion(docenciaDTO);
				}if(docenciaDTO.getIndEspecialidad()==ConstanteWeb.ESPECIALIDAD_ARBITRAJE){
					totalDocenciaArbitraje+=obtenerHoraPorTipoDuracion(docenciaDTO);
				}if(docenciaDTO.getIndEspecialidad()==ConstanteWeb.ESPECIALIDAD_DERECHO_ADM){
					totalDocenciaDerechoAdm+=obtenerHoraPorTipoDuracion(docenciaDTO);
				}
			}
		}
	}
	
	public Integer obtenerHoraPorTipoDuracion(DocenciaDTO docenciaDTO){
		String enlaceRegla=repositorioDatos.getDescriptionParametro(docenciaDTO.getIndTipoDuracion());
		Integer totalHoras=0;
		//Determino si se hara una conversion de Años a Ciclos a horas
		if(enlaceRegla.equals(propSirenas.getString(ConstanteWeb.REG_VALOR_ANIO_CICLO))){
			totalHoras=docenciaDTO.getDuracion().intValue() * obtieneRegla(propSirenas.getString(ConstanteWeb.REG_VALOR_ANIO_CICLO));
			enlaceRegla=propSirenas.getString(ConstanteWeb.REG_VALOR_CICLO_HORA);//Para que continue con la Conversion de Ciclos a Horas
		}
		//Determino si se hara una conversion de Ciclos a horas
		if(enlaceRegla.equals(propSirenas.getString(ConstanteWeb.REG_VALOR_CICLO_HORA))){
			if(totalHoras==0){
				totalHoras=docenciaDTO.getDuracion().intValue() * obtieneRegla(propSirenas.getString(ConstanteWeb.REG_VALOR_CICLO_HORA));	
			}else{
				totalHoras=totalHoras * obtieneRegla(propSirenas.getString(ConstanteWeb.REG_VALOR_CICLO_HORA));	
			}
		}else{//ADiciono las Horas
			totalHoras=+docenciaDTO.getDuracion().intValue();
		}
		return totalHoras;
	}
	public boolean validaDocencia(){
		boolean confirmacion=true;
		if(arbEspecialDocencia.getIdCentroEstudios()==null || arbEspecialDocencia.getIdCentroEstudios()<=0)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_DOC_CENTRO_ESTUDIOS), "");
			return false;
		}
		if(arbEspecialDocencia.getDescripcionCurso()==null || arbEspecialDocencia.getDescripcionCurso().trim().equals(""))
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_DOC_DESC_EVENTO), "");
			return false;
		}
		if(arbEspecialDocencia.getIndTipoActividad()==null || arbEspecialDocencia.getIndTipoActividad()<0)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_DOC_ACTIVIDAD), "");
			return false;
		}
		if(arbEspecialDocencia.getDuracion()==null || arbEspecialDocencia.getDuracion() <= 0) 
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_DOC_TIEMPO_DURACION), "");
			return false;
		}	
		if(arbEspecialDocencia.getIndTipoDuracion()==null || arbEspecialDocencia.getIndTipoDuracion() <= 0)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_DOC_TIEMPO_DURACION_ITEM), "");
			return false;
		}
		return confirmacion;
	}
	public void cerrarTrayectoriaPublicaPopup(){
		RequestContext context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogTrayectoriaPublico').hide();");
	}
	public void abrirTrayectoriaPublicaPopup(){
		limpiarObjetos();
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogTrayectoriaPublico').show();");
	}
	public void agregarMateriaControvertida(){
		Long idmateria=this.arbEspecialTrayectoriaArbitralPublic.getIdMateriaControvertida();
		if(idmateria!=null && idmateria>0){
			boolean valida=true;
			for (MateriaControversiaDTO materiaControversiaDTO : this.arbEspecialTrayectoriaArbitralPublic.getListaMateriaControvertida()) {
				if(materiaControversiaDTO.getIdMateriaControversia()==idmateria.intValue()){
					valida=false;
					break;
				}
			}
			
			if(valida){
				MateriaControversiaDTO materiaControversiaDTO=new MateriaControversiaDTO();
				materiaControversiaDTO.setIdMateriaControversia(idmateria.intValue());
				materiaControversiaDTO.setDescMateriaControversia(repositorioDatos.getLabelMateriaControversia(this.arbEspecialTrayectoriaArbitralPublic.getIdMateriaControvertida()));

				this.arbEspecialTrayectoriaArbitralPublic.getListaMateriaControvertida().add(materiaControversiaDTO);
			}else{
				setMensajeroError(propSirenas.getString(ConstanteWeb.EXC_VISTA_TITLE), "La Materia ya se encuentra en la lista.");
			}
		}else{
			setMensajeroError(propSirenas.getString(ConstanteWeb.EXC_VISTA_TITLE), "No ha seleccionado una Materia válida.");
		}
	}
	
	public void eliminarMateriaControvertida(Integer idMateria){
		for (MateriaControversiaDTO materiaControversiaDTO : this.arbEspecialTrayectoriaArbitralPublic.getListaMateriaControvertida()) {
			if(materiaControversiaDTO.getIdMateriaControversia()==idMateria){
				this.arbEspecialTrayectoriaArbitralPublic.getListaMateriaControvertida().remove(materiaControversiaDTO);
				break;
			}
		}
	}
	public void agregarTrayectoriaPublicaPopup(){	
		if(validaTrayectoriaPublica()){
			if(validarFechaTrayectoriaPublica())
			{
				this.arbEspecialTrayectoriaArbitralPublic.setIndex(indexTrayectoriaArbitralPublic);
				arbEspecialTrayectoriaArbitralPublic.setIndEspecialidad(indicadorEspecialidad);	
				arbEspecialTrayectoriaArbitralPublic.setIdFicha(this.fichaArbitral.getIdFicha());
				arbEspecialTrayectoriaArbitralPublic.setEstado(Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO)));
				arbEspecialTrayectoriaArbitralPublic.setTipoTrayectoria("PUBLICA");
				arbEspecialTrayectoriaArbitralPublic.setNomEntidad(arbEspecialTrayectoriaArbitralPublic.getNomEntidad().toUpperCase());
				arbEspecialTrayectoriaArbitralPublic.setNomContratista(arbEspecialTrayectoriaArbitralPublic.getNomContratista().toUpperCase());					
				arbEspecialTrayectoriaArbitralPublic.setObjContratacion(arbEspecialTrayectoriaArbitralPublic.getObjContratacion().toUpperCase());
				arbEspecialTrayectoriaArbitralPublic.setNumContrato(arbEspecialTrayectoriaArbitralPublic.getNumContrato().toUpperCase());
				arbEspecialTrayectoriaArbitralPublic.setProcesoSeleccion(arbEspecialTrayectoriaArbitralPublic.getNumContrato().toUpperCase());
				arbEspecialTrayectoriaArbitralPublic.setIdesMateriaControvertida(obtenerCadenaMateriaControvertida());
				arbEspecialTrayectoriaArbitralPublic.setListaMateriaControvertida(convertirListaMateriaControvertida(arbEspecialTrayectoriaArbitralPublic.getIdesMateriaControvertida()));
				arbEspecialTrayectoriaArbitralPublic.setDescTipoArbitraje(repositorioDatos.getLabelParametro(arbEspecialTrayectoriaArbitralPublic.getIndTipoArbitraje().longValue()).toUpperCase());

				if(this.fichaArbitral.getIdEstadoFicha()==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE))){
					arbEspecialTrayectoriaArbitralPublic.setCodRegistro(CODIGO_REGISTRO.ORIGINAL.getId() );
				}else{
					arbEspecialTrayectoriaArbitralPublic.setCodRegistro(CODIGO_REGISTRO.ACTUALIZACION.getId() );
				}
				
				this.listaTrayectoriaArbitralPublicoCompleta.add(this.arbEspecialTrayectoriaArbitralPublic);
				indexTrayectoriaArbitralPublic++;
				this.arbEspecialTrayectoriaArbitralPublic= new TrayectoriaArbitralDTO();
				distribuirListaArbitrajePublico();
				calculaTotalArbPublico();
				cerrarTrayectoriaPublicaPopup();
			}
		}
	}
	public String obtenerCadenaMateriaControvertida(){
		String valorMateria="";
		Iterator<MateriaControversiaDTO> iteratorMateria=arbEspecialTrayectoriaArbitralPublic.getListaMateriaControvertida().iterator();
		while(iteratorMateria.hasNext()){
			valorMateria+=iteratorMateria.next().getIdMateriaControversia();
			if(iteratorMateria.hasNext()){
				valorMateria+="|";
			}
		}
		return valorMateria;
	}
	public List convertirListaMateriaControvertida(String cadenaMateria){		
		MateriaControversiaDTO controversiaDTO;
		List<MateriaControversiaDTO> listaMateriaControvertida=new ArrayList<MateriaControversiaDTO>();
		String[] idesMateria;
		if(cadenaMateria.indexOf("|")>0){
			idesMateria=cadenaMateria.trim().split("|");
		}else{
			idesMateria=new String[1];
			idesMateria[0]=cadenaMateria;
		}
		for (String ide : idesMateria) {
			if(!ide.equals("|") && !ide.equals("")){
				controversiaDTO=new MateriaControversiaDTO();
				controversiaDTO.setIdMateriaControversia(Integer.parseInt(ide));
				controversiaDTO.setDescMateriaControversia(repositorioDatos.getLabelMateriaControversia(Long.parseLong(ide)) );
				listaMateriaControvertida.add(controversiaDTO);
			}
		}
		return listaMateriaControvertida;
	}
	public void calculaTotalArbPublico(){
		/**Restablesco los valores a Cero, para iniciar el conteo de Arbitrajes registrados*/
		totalArbPublicoContrataciones=0;
		totalArbPublicoArbitraje=0;
		for (TrayectoriaArbitralDTO trayectoriaArbitralDTO : this.listaTrayectoriaArbitralPublicoCompleta) {
			if(trayectoriaArbitralDTO.getEstado()==1L){//Solo contabilizo Registros Activos
				/**Para Arbitrajes solo se tiene que hacer un conteo de la Cantidad de Registros Consignados*/
				if(trayectoriaArbitralDTO.getIndEspecialidad()==ConstanteWeb.ESPECIALIDAD_CONTRATACIONES){
					totalArbPublicoContrataciones++;
				}if(trayectoriaArbitralDTO.getIndEspecialidad()==ConstanteWeb.ESPECIALIDAD_ARBITRAJE){
					totalArbPublicoArbitraje++;
				}
			}
		}
	}
	
	public boolean validarFechaTrayectoriaPublica(){
		boolean confirmacion=true;
		if(arbEspecialTrayectoriaArbitralPublic.getFecFin().compareTo(arbEspecialTrayectoriaArbitralPublic.getFecInicio())<0)
		{		
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REGLA_FECHAS_TRAYECTORIA),"");
			return false;	
		}
		return confirmacion;
	}
	public boolean validaTrayectoriaPublica(){
		boolean confirmacion=true;
			if(arbEspecialTrayectoriaArbitralPublic.getNomEntidad()==null || arbEspecialTrayectoriaArbitralPublic.getNomEntidad().equals(""))
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_ENTIDAD),"");
				return false;	
			}
			if(	arbEspecialTrayectoriaArbitralPublic.getNomContratista()==null || 	arbEspecialTrayectoriaArbitralPublic.getNomContratista().equals(""))
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_CONTRATISTA),"");
				return false;	
			}
			if(arbEspecialTrayectoriaArbitralPublic.getObjContratacion()==null || arbEspecialTrayectoriaArbitralPublic.getObjContratacion().equals(""))
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_OBJ_CONTRATACION),"");
				return false;	
			}
			if(arbEspecialTrayectoriaArbitralPublic.getProcesoSeleccion()==null || arbEspecialTrayectoriaArbitralPublic.getProcesoSeleccion().equals(""))
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_PROCESO_SELECCION),"");
				return false;	
			}
			if(arbEspecialTrayectoriaArbitralPublic.getNumContrato()==null || arbEspecialTrayectoriaArbitralPublic.getNumContrato().equals(""))
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_NUM_CONTRATO),"");
				return false;	
			}
			
			if(arbEspecialTrayectoriaArbitralPublic.getFecInicio()==null)
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_FEC_INICIO),"");
				return false;	
			}
			if(this.arbEspecialTrayectoriaArbitralPublic.getListaMateriaControvertida()==null || this.arbEspecialTrayectoriaArbitralPublic.getListaMateriaControvertida().isEmpty())
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_MATERIA_CONTROVERTIDA),"");
				return false;	
			}
			if(arbEspecialTrayectoriaArbitralPublic.getFecFin()==null )
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_FEC_EMISION),"");
				return false;	
			}
			if(arbEspecialTrayectoriaArbitralPublic.getIndTipoArbitraje()<=0 || arbEspecialTrayectoriaArbitralPublic.getIndTipoArbitraje()==null)
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_TIPO_ARBITRAJE),"");
				return false;	
			}
		return confirmacion;
	}

	public void cerrarTrayectoriaPrivadoPopup(){
		RequestContext context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogTrayPriv').hide();");
	}
	public void abrirTrayectoriaPrivadoPopup(){
		limpiarObjetos();
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogTrayPriv').show();");
	}
	public void agregarTrayectoriaPrivadoPopup(){
		if(validaTrayectoriaPrivada()){
			if(validarFechaTrayectoriaPrivada())
			{
				Long Id= this.fichaArbitral.getIdFicha();
				this.arbEspecialTrayectoriaArbitralPriv.setIndex(indexTrayectoriaArbitralPriv);
				arbEspecialTrayectoriaArbitralPriv.setIndEspecialidad(indicadorEspecialidad);
				arbEspecialTrayectoriaArbitralPriv.setIdFicha(Id);	
				arbEspecialTrayectoriaArbitralPriv.setEstado(Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO)));
				arbEspecialTrayectoriaArbitralPriv.setTipoTrayectoria("PRIVADO");
				arbEspecialTrayectoriaArbitralPriv.setNomEntidad(arbEspecialTrayectoriaArbitralPriv.getNomEntidad().toUpperCase());
				arbEspecialTrayectoriaArbitralPriv.setNomContratista(arbEspecialTrayectoriaArbitralPriv.getNomContratista().toUpperCase());		

				arbEspecialTrayectoriaArbitralPriv.setDescMateriaControvertida(repositorioDatos.getLabelMateriaControversia(arbEspecialTrayectoriaArbitralPriv.getIdMateriaControvertida().longValue()).toUpperCase());
				arbEspecialTrayectoriaArbitralPriv.setDescTipoArbitraje(repositorioDatos.getLabelParametro(arbEspecialTrayectoriaArbitralPriv.getIndTipoArbitraje()).toUpperCase());
				arbEspecialTrayectoriaArbitralPriv.setIdesMateriaControvertida(""+arbEspecialTrayectoriaArbitralPriv.getIdMateriaControvertida() );
				if(this.fichaArbitral.getIdEstadoFicha()==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE))){
					arbEspecialTrayectoriaArbitralPriv.setCodRegistro(CODIGO_REGISTRO.ORIGINAL.getId() );
				}else{
					arbEspecialTrayectoriaArbitralPriv.setCodRegistro(CODIGO_REGISTRO.ACTUALIZACION.getId() );
				}
				
				this.listaTrayectoriaArbitralPrivadoCompleta.add(this.arbEspecialTrayectoriaArbitralPriv);
				indexTrayectoriaArbitralPriv++;
				this.arbEspecialTrayectoriaArbitralPriv= new TrayectoriaArbitralDTO();
				distribuirListaArbitrajePrivado();
				calculaTotalArbPrivado();
				cerrarTrayectoriaPrivadoPopup();
			}
		}
	}
	public void calculaTotalArbPrivado(){
		/**Restablesco los valores a Cero, para iniciar el conteo de Arbitrajes registrados*/
		totalArbPrivadoArbitraje=0;
		for (TrayectoriaArbitralDTO trayectoriaArbitralDTO : this.listaTrayectoriaArbitralPrivadoCompleta) {
			if(trayectoriaArbitralDTO.getEstado()==1L){//Solo contabilizo Registros Activos
				if(trayectoriaArbitralDTO.getIndEspecialidad()==ConstanteWeb.ESPECIALIDAD_ARBITRAJE){
					totalArbPrivadoArbitraje++;
				}
			}
		}
	}

	public boolean validarFechaTrayectoriaPrivada(){
		boolean confirmacion=true;
		if(arbEspecialTrayectoriaArbitralPriv.getFecFin().compareTo(arbEspecialTrayectoriaArbitralPriv.getFecInicio())<0)
		{		
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REGLA_FECHAS_TRAYECTORIA),"");
			return false;	
		}
		return confirmacion;
	}
	public boolean validaTrayectoriaPrivada(){
		boolean confirmacion=true;
			if(arbEspecialTrayectoriaArbitralPriv.getNomEntidad()==null || arbEspecialTrayectoriaArbitralPriv.getNomEntidad().equals(""))
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_ENTIDAD),"");
				return false;	
			}
			if(	arbEspecialTrayectoriaArbitralPriv.getNomContratista()==null || 	arbEspecialTrayectoriaArbitralPriv.getNomContratista().equals(""))
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_CONTRATISTA),"");
				return false;	
			}
			if(arbEspecialTrayectoriaArbitralPriv.getIdMateriaControvertida()==null || arbEspecialTrayectoriaArbitralPriv.getIdMateriaControvertida()<=0)
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_MATERIA_CONTROVERTIDA),"");
				return false;	
			}
			if(arbEspecialTrayectoriaArbitralPriv.getNumContrato()==null || arbEspecialTrayectoriaArbitralPriv.getNumContrato().equals(""))
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_NUM_CONTRATO),"");
				return false;	
			}
			if(arbEspecialTrayectoriaArbitralPriv.getFecInicio()==null)
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_FEC_INICIO),"");
				return false;	
			}
		
			if(arbEspecialTrayectoriaArbitralPriv.getFecFin()==null )
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_FEC_EMISION),"");
				return false;	
			}		
		
			if(arbEspecialTrayectoriaArbitralPriv.getIndTipoArbitraje()<=0 || arbEspecialTrayectoriaArbitralPriv.getIndTipoArbitraje()==null)
			{		
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_TRAY_TIPO_ARBITRAJE),"");
				return false;	
			}
		return confirmacion;
	}
	
	
	
	public void cerrarExperienciaLaboralPopup(){
		RequestContext context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogExperienciaLaboral').hide();");
	}
	public void abrirExperienciaLaboralPopup(){
		limpiarObjetos();
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogExperienciaLaboral').show();");
	}
	public void agregarExperienciaLaboralPopup(){	
		if(validaExpLaboral()){
			if(validarFechaExperienciaLaboral())
			{
				this.arbEspecialExperienciaLaboral.setIndice(indexExperienciaLaboral);
				this.arbEspecialExperienciaLaboral.setIndEspecialidad(indicadorEspecialidad.intValue());	
				this.arbEspecialExperienciaLaboral.setIdFicha( this.fichaArbitral.getIdFicha());
				this.arbEspecialExperienciaLaboral.setEstado(Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO)));
				this.arbEspecialExperienciaLaboral.setDescripcionCargo(this.arbEspecialExperienciaLaboral.getDescripcionCargo().toUpperCase());
				this.arbEspecialExperienciaLaboral.setNomCentroTrabajo(this.arbEspecialExperienciaLaboral.getNomCentroTrabajo().toUpperCase());
				this.arbEspecialExperienciaLaboral.setVigente(convertAString(this.arbEspecialExperienciaLaboral.getIndicadorActual()));
				
				

				SimpleDateFormat sdf = new SimpleDateFormat("dd/M/yyyy");
				
				if(this.arbEspecialExperienciaLaboral.getIndicadorActual()==true)
				{
					this.arbEspecialExperienciaLaboral.setVigente(this.arbEspecialExperienciaLaboral.getVigente()+" A la fecha : "+ sdf.format(new Date()));
					this.arbEspecialExperienciaLaboral.setFecEgreso(new Date());
				}else{
					this.arbEspecialExperienciaLaboral.setFecEgreso(this.arbEspecialExperienciaLaboral.getFecEgresoVisualizar());
				}
				if(this.fichaArbitral.getIdEstadoFicha()==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE))){
					this.arbEspecialExperienciaLaboral.setCodRegistro(CODIGO_REGISTRO.ORIGINAL.getId() );
				}else{
					this.arbEspecialExperienciaLaboral.setCodRegistro(CODIGO_REGISTRO.ACTUALIZACION.getId() );
				}
				
				this.listaExperienciaLaboralCompleta.add(this.arbEspecialExperienciaLaboral);
				indexExperienciaLaboral++;
				this.arbEspecialExperienciaLaboral= new ExperienciaLaboralDTO();
				distribuirListaLaboral();
				cerrarExperienciaLaboralPopup();
				calculaTotalExpLaboral();
			}
		}
	}
	public void calculaTotalExpLaboral(){
		/**Restablesco los valores a Cero, para iniciar el conteo de Arbitrajes registrados*/
		this.mesesLaboralContratacion=0;
		this.mesesLaboralArbitraje=0;
		this.mesesLaboralDerechoAdm=0;
		this.totalLaboralContratacion="";
		this.totalLaboralArbitraje="";
		this.totalLaboralDerechoAdm="";
		Date iniContrataciones=new Date();
		Date finContrataciones=new Date();
		int indexContrataciones=0;
		Date iniArbitraje=new Date();
		Date finArbitraje=new Date();
		int indexArbitraje=0;
		Date iniDerecho=new Date();
		Date finDerecho=new Date();
		int indexDerecho=0;
	//	Date fecEgreso = new Date();
		for (ExperienciaLaboralDTO experienciaLaboralDTO : this.listaExperienciaLaboralCompleta) {
			if(experienciaLaboralDTO.getEstado()==1L){//Solo contabilizo Registros Activos
				/**Para Arbitrajes solo se tiene que hacer un conteo de la Cantidad de Registros Consignados*/
				if(experienciaLaboralDTO.getFecEgresoVisualizar()==null)
				{
					experienciaLaboralDTO.setFecEgreso( new Date());
				}
								
				if(experienciaLaboralDTO.getIndEspecialidad()==ConstanteWeb.ESPECIALIDAD_CONTRATACIONES){
					iniContrataciones=comparoFecha(experienciaLaboralDTO.getFecIngreso(), iniContrataciones, 1);
					if(experienciaLaboralDTO.getIndicadorActual()){experienciaLaboralDTO.setFecEgreso(new Date());}
					if(indexContrataciones==0){finContrataciones=experienciaLaboralDTO.getFecEgreso();}
					finContrataciones=comparoFecha(experienciaLaboralDTO.getFecEgreso(), finContrataciones, 2);
					indexContrataciones+=1;
				}if(experienciaLaboralDTO.getIndEspecialidad()==ConstanteWeb.ESPECIALIDAD_ARBITRAJE){
					iniArbitraje=comparoFecha(experienciaLaboralDTO.getFecIngreso(), iniArbitraje, 1);
					if(experienciaLaboralDTO.getIndicadorActual()){experienciaLaboralDTO.setFecEgreso(new Date());}
					if(indexArbitraje==0){finArbitraje=experienciaLaboralDTO.getFecEgreso();}
					finArbitraje=comparoFecha(experienciaLaboralDTO.getFecEgreso(), finArbitraje, 2);
					indexArbitraje+=1;
				}if(experienciaLaboralDTO.getIndEspecialidad()==ConstanteWeb.ESPECIALIDAD_DERECHO_ADM){
					iniDerecho=comparoFecha(experienciaLaboralDTO.getFecIngreso(), iniDerecho, 1);
					if(experienciaLaboralDTO.getIndicadorActual()){experienciaLaboralDTO.setFecEgreso(new Date());}
					if(indexDerecho==0){finDerecho=experienciaLaboralDTO.getFecEgreso();}
					finDerecho=comparoFecha(experienciaLaboralDTO.getFecEgreso(), finDerecho, 2);		
					indexDerecho+=1;
				}
			}
		}
		Object[] totalesContrataciones=diferenciaEntreFechas(iniContrataciones, finContrataciones);
		this.totalLaboralContratacion=totalesContrataciones[0]+" años "+totalesContrataciones[1]+" meses";
		this.mesesLaboralContratacion=((int)totalesContrataciones[0]*12)+(int)totalesContrataciones[1];
		
		Object[] totalesArbitraje=diferenciaEntreFechas(iniArbitraje, finArbitraje);
		this.totalLaboralArbitraje=totalesArbitraje[0]+" años "+totalesArbitraje[1]+" meses";
		this.mesesLaboralArbitraje=((int)totalesArbitraje[0]*12)+(int)totalesArbitraje[1];

		Object[] totalesDerecho=diferenciaEntreFechas(iniDerecho, finDerecho);
		this.totalLaboralDerechoAdm=totalesDerecho[0]+" años "+totalesDerecho[1]+" meses";
		this.mesesLaboralDerechoAdm=((int)totalesDerecho[0]*12)+(int)totalesDerecho[1];
		
	}
	public boolean validarFechaExperienciaLaboral()
	{
		boolean confirmacion=true;
		if( arbEspecialExperienciaLaboral.getFecEgreso()!=null)
		{
			if(arbEspecialExperienciaLaboral.getFecEgreso().compareTo(arbEspecialExperienciaLaboral.getFecIngreso())<0)
			{
				setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REGLA_FECHAS),"");
				return false;
			}
		}
		return confirmacion;
		
	}
	public boolean validaExpLaboral(){
		boolean confirmacion=true;
		if(arbEspecialExperienciaLaboral.getNomCentroTrabajo()==null || arbEspecialExperienciaLaboral.getNomCentroTrabajo().trim().equals(""))
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_EXP_CENTRO_TRABAJO),"");
			return false;	
		}
		if(arbEspecialExperienciaLaboral.getDescripcionCargo()==null || arbEspecialExperienciaLaboral.getDescripcionCargo().trim().equals(""))
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_EXP_PUESTO_TRABAJO),"");
			return false;	
		}
		if(arbEspecialExperienciaLaboral.getFecIngreso()==null)
		{
			setMensajeroError(propSirenas.getString(ConstanteWeb.MSJ_REQ_EXP_FEC_INICIO),"");
			return false;	
		}
		if(arbEspecialExperienciaLaboral.getFecEgresoVisualizar()== null && !arbEspecialExperienciaLaboral.getIndicadorActual())
		{
			setMensajeroError("Debe indicar el Fin de Periodo","Fecha Egreso o Actual");
			return false;	
		}
		return confirmacion;
	}
	
	public void  guardarContrataciones(){
        System.out.println("Entro a mi Experiencia Laboral");
       
       List<EspecialidadAcademicaDTO> listEspecialidadAcademicaDTO;
       List<CapacitacionDTO> listCapacitacionDTO;
       List<DocenciaDTO> listDocenciaDTO;
       List<TrayectoriaArbitralDTO> listTrayArbitralPrivDTO;
       List<TrayectoriaArbitralDTO> listTrayArbitralPublicDTO;
       List<ExperienciaLaboralDTO> listExpLaboralDTO;
        
       AuditoriaDTO auditoria=(AuditoriaDTO)obtenerObjetoSession(ConstanteWeb.AUDITORIA);
       if(this.fichaArbitral.getIdEstadoFicha()!=Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE)))
       {
    	   	agregarCodTramiteRectificaciones();
       }
		try{
			
			listEspecialidadAcademicaDTO= this.listaEspecialidadAcademicaCompleta;
			listCapacitacionDTO= this.listaEspecialCapacitacionCompleta;
			listDocenciaDTO= this.listaEspecialDocenciaCompleta;
			listTrayArbitralPrivDTO= this.listaTrayectoriaArbitralPrivadoCompleta;
			listTrayArbitralPublicDTO= this.listaTrayectoriaArbitralPublicoCompleta;
			listExpLaboralDTO= this.listaExperienciaLaboralCompleta;
		
			this.listaEspecialidadAcademicaCompleta= registrarFichaArbitroService.guardarListaEspecialidadAcademica(listEspecialidadAcademicaDTO,auditoria,this.fichaArbitral.getIdPersona());
			this.listaEspecialCapacitacionCompleta= registrarFichaArbitroService.guardarListaCapacitacion(listCapacitacionDTO,auditoria,this.fichaArbitral.getIdPersona());
			this.listaEspecialDocenciaCompleta= registrarFichaArbitroService.guardarDocencia(listDocenciaDTO,auditoria,this.fichaArbitral.getIdPersona());
			this.listaTrayectoriaArbitralPrivadoCompleta= registrarFichaArbitroService.guardarTrayectoria(listTrayArbitralPrivDTO,auditoria,this.fichaArbitral.getIdPersona());
			this.listaTrayectoriaArbitralPublicoCompleta= registrarFichaArbitroService.guardarTrayectoria(listTrayArbitralPublicDTO,auditoria,this.fichaArbitral.getIdPersona());			
			this.listaExperienciaLaboralCompleta= registrarFichaArbitroService.guardarExpLaboral(listExpLaboralDTO,auditoria,this.fichaArbitral.getIdPersona());


			if(indicadorEspecialidad == ConstanteWeb.ESPECIALIDAD_CONTRATACIONES){
				evaluaRegistroDeAcreditacionContrataciones(evaluaAcreditacionContrataciones());	
			}
			if(indicadorEspecialidad == ConstanteWeb.ESPECIALIDAD_ARBITRAJE){
				evaluaRegistroDeAcreditacionArbitraje(evaluaAcreditacionArbitraje());	
			}
			if(indicadorEspecialidad == ConstanteWeb.ESPECIALIDAD_DERECHO_ADM){
				evaluaRegistroDeAcreditacionDerecho(evaluaAcreditacionDerecho());	
			}
			limpiarObjetos();
			cargaListasEspecializacion();
			
			if(this.indicadorEspecialidad==ConstanteWeb.ESPECIALIDAD_CONTRATACIONES)
				RequestContext.getCurrentInstance().update("idFormContrataciones");
			if(this.indicadorEspecialidad==ConstanteWeb.ESPECIALIDAD_ARBITRAJE)
				RequestContext.getCurrentInstance().update("idFormArbitraje");
			if(this.indicadorEspecialidad==ConstanteWeb.ESPECIALIDAD_DERECHO_ADM)
				RequestContext.getCurrentInstance().update("idFormDerecho");
			
			setMensajeroInfo(propSirenas.getString(ConstanteWeb.MSJ_REG_OK));

		} catch (ModeloException e) {
			setMensajeroError(propSirenas.getString(ConstanteWeb.EXC_MODELO_TITLE),e.getMessage());
		}
		catch (Exception e) {
			setMensajeroError(propSirenas.getString(ConstanteWeb.EXC_VISTA_TITLE),propSirenas.getString(ConstanteWeb.EXC_VISTA_SOLICITUD));
		}
	}
	
	private void agregarCodTramiteRectificaciones()
	{
		/** Especialidad Academica **/
		for (EspecialidadAcademicaDTO  especialidadAcademica : listaEspecialidadAcademicaCompleta) {
			
			if(especialidadAcademica.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO)))
			{
				especialidadAcademica.setCodTramite(codTramite);
			}				
		}
		
		/** Especialidad En Capacitacion**/
		for (CapacitacionDTO  capacitacion : listaEspecialCapacitacionCompleta) {
			
			if(capacitacion.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO)))
			{
				capacitacion.setCodTramite(codTramite);
			}				
		}
		/** Especialidad En Docencia**/
		for (DocenciaDTO  docencia : listaEspecialDocenciaCompleta) {
			
			if(docencia.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO)))
			{
				docencia.setCodTramite(codTramite);
			}				
		}
		/** Especialidad En Trayectoria de Arbitraje Publica**/
		for (DocenciaDTO  docencia : listaEspecialDocenciaCompleta) {
			
			if(docencia.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO)))
			{
				docencia.setCodTramite(codTramite);
			}				
		}
		/** Especialidad En Trayectoria de Arbitraje Publica**/
		for (TrayectoriaArbitralDTO  trayecArbitralPublic : listaTrayectoriaArbitralPublicoCompleta) {
			
			if(trayecArbitralPublic.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO)))
			{
				trayecArbitralPublic.setCodTramite(codTramite);
			}				
		}
		/** Especialidad En Trayectoria de Arbitraje Publica**/
		for (TrayectoriaArbitralDTO  trayecArbitralPriv : listaTrayectoriaArbitralPrivadoCompleta) {
			
			if(trayecArbitralPriv.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO)))
			{
				trayecArbitralPriv.setCodTramite(codTramite);
			}				
		}
		/** Especialidad En Trayectoria de Arbitraje Publica**/
		for (ExperienciaLaboralDTO  experienciaLaboral : listaExperienciaLaboralCompleta) {
			
			if(experienciaLaboral.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO)))
			{
				experienciaLaboral.setCodTramite(codTramite);
			}				
		}
		codTramite="";
	}
	
	
	
	
	
	
	/**INICIO DE Evaluacion de ACreditacion de Especialidad*/
	/**Configurar metodos para su reutilizacion , las validaciones tiene que devolver un valor true*/
	public boolean evaluaAcreditacionContrataciones(){		
		acreditaPorAcademica=evaluaAcreditacionPorValorRegla(this.totalEspAcademicaContrataciones,valorReglaAcademica);
		acreditaPorDocencia=evaluaAcreditacionPorValorRegla(this.totalDocenciaContrataciones,valorReglaDocencia);
		acreditaPorLaboral=evaluaAcreditacionPorValorRegla(this.mesesLaboralContratacion,valorReglaLaboral);
		acreditaPorPublico=evaluaAcreditacionPorValorRegla(this.totalArbPublicoContrataciones,valorReglaArbPublico);		
		if(acreditaPorAcademica || acreditaPorDocencia || acreditaPorLaboral || acreditaPorPublico){
			return true;
		}else{return false;}
	}

	public boolean evaluaAcreditacionArbitraje(){
		acreditaPorAcademica=evaluaAcreditacionPorValorRegla(this.totalEspAcademicaArbitraje,valorReglaAcademica);
		acreditaPorDocencia=evaluaAcreditacionPorValorRegla(this.totalDocenciaArbitraje,valorReglaDocencia);
		acreditaPorLaboral=evaluaAcreditacionPorValorRegla(this.mesesLaboralArbitraje,valorReglaLaboral);
		acreditaPorPublico=evaluaAcreditacionPorValorRegla(this.totalArbPublicoArbitraje,valorReglaArbPublico);	
		if(acreditaPorAcademica || acreditaPorDocencia || acreditaPorLaboral || acreditaPorPublico){
			return true;
		}else{return false;}
	}

	public boolean evaluaAcreditacionDerecho(){		
		acreditaPorAcademica=evaluaAcreditacionPorValorRegla(this.totalEspAcademicaDerechoAdm,valorReglaAcademica);
		acreditaPorDocencia=evaluaAcreditacionPorValorRegla(this.totalDocenciaDerechoAdm,valorReglaDocencia);
		acreditaPorLaboral=evaluaAcreditacionPorValorRegla(this.mesesLaboralDerechoAdm,valorReglaLaboral);
		if(acreditaPorAcademica || acreditaPorDocencia || acreditaPorLaboral){
			return true;
		}else{return false;}
	}
	
	public void registraAcreditacionEspecialidad(AcreditacionDTO acreditacionDTO){
		this.auditoria=(AuditoriaDTO)obtenerObjetoSession(ConstanteWeb.AUDITORIA);
		try {
			registrarFichaArbitroService.guardarAcreditacion(acreditacionDTO, this.auditoria);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void evaluaRegistroDeAcreditacionContrataciones(boolean acreditacion){
		AcreditacionDTO nuevaAcreditacion=null;
		if(acreditacion){
			/**Verifico no tenga una Acreditacion ya registrada*/
			if(this.acreditacionContrataciones==null){
				nuevaAcreditacion=new AcreditacionDTO();
				nuevaAcreditacion.setIdFicha(this.fichaArbitral.getIdFicha());
				nuevaAcreditacion.setIndEspecialidad(ConstanteWeb.ESPECIALIDAD_CONTRATACIONES);
				registraAcreditacionEspecialidad(nuevaAcreditacion);
				setMensajeroInfo("Registrada Acreditacion en ESPECIALIDAD_CONTRATACIONES");
				
				/** Si se cumple con la Acreditacion por Arb PUBLICO esta activa la Acreditacion para Esp Arbitraje*/
				if(acreditaPorPublico && this.acreditacionArbitraje==null){
					nuevaAcreditacion=new AcreditacionDTO();
					nuevaAcreditacion.setIdFicha(this.fichaArbitral.getIdFicha());
					nuevaAcreditacion.setIndEspecialidad(ConstanteWeb.ESPECIALIDAD_ARBITRAJE);
					registraAcreditacionEspecialidad(nuevaAcreditacion);					
					setMensajeroInfo("Registrada Acreditacion en ESPECIALIDAD_ARBITRAJE");	
				}
			}
		}else{
			/**Verifico si tiene una Acreditacion ya registrada, y la Desactivo*/
			if(this.acreditacionContrataciones!=null){
				this.acreditacionContrataciones.setEstado(0L);
				registraAcreditacionEspecialidad(this.acreditacionContrataciones);
			}
			/**Actualizo la Acreditacion en Arbitraje si hubo algun cambio por Exp en Arb Publico en CONTRATACIONES */
			boolean acreditaArbitraje=evaluaAcreditacionArbitraje();
			/**Si tiene Acreditada una Especialidad en Arbitraje, pero no cumple evaluaAcreditacionArbitraje*/
			/**Desactivo esa acreditacion, ya que se produjo por una Acreditaccion en Arb Publico pero de Contrataciones*/
			if(this.acreditacionArbitraje!=null && acreditaArbitraje==false){
				/**Evaluo si solo obtuvo la Acre*/
				this.acreditacionArbitraje.setEstado(0L);
				registraAcreditacionEspecialidad(this.acreditacionArbitraje);
			}			
		}
	}
	
	public void evaluaRegistroDeAcreditacionArbitraje(boolean acreditacion){
		AcreditacionDTO nuevaAcreditacion=null;
		
		if(acreditacion){
			/**Verifico no tenga una Acreditacion ya registrada*/
			if(this.acreditacionArbitraje==null){
				nuevaAcreditacion=new AcreditacionDTO();
				nuevaAcreditacion.setIdFicha(this.fichaArbitral.getIdFicha());
				nuevaAcreditacion.setIndEspecialidad(ConstanteWeb.ESPECIALIDAD_ARBITRAJE);
				registraAcreditacionEspecialidad(nuevaAcreditacion);
				setMensajeroInfo("Registrada Acreditacion en ESPECIALIDAD ARBITRAJE");	
				/** Si se cumple con la Acreditacion por Arb PUBLICO esta activa la Acreditacion para Esp Contratacion*/
				if(acreditaPorPublico && this.acreditacionContrataciones==null){
					nuevaAcreditacion=new AcreditacionDTO();
					nuevaAcreditacion.setIdFicha(this.fichaArbitral.getIdFicha());
					nuevaAcreditacion.setIndEspecialidad(ConstanteWeb.ESPECIALIDAD_CONTRATACIONES);
					setMensajeroInfo("Registrada Acreditacion en ESPECIALIDAD CONTRATACIONES");	
					registraAcreditacionEspecialidad(nuevaAcreditacion);						
				}
			}
		}else{
			/**Verifico si tiene una Acreditacion ya registrada, y la Desactivo*/
			if(this.acreditacionArbitraje!=null){
				this.acreditacionArbitraje.setEstado(0L);
				registraAcreditacionEspecialidad(this.acreditacionArbitraje);
			}

			/**Actualizo la Acreditacion en Arbitraje si hubo algun cambio por Exp en Arb Publico en CONTRATACIONES */
			boolean acreditaContratacion=evaluaAcreditacionContrataciones();
			/**Si tiene Acreditada una Especialidad en Contrataciones, pero no cumple evaluaAcreditacionContrataciones*/
			/**Desactivo esa acreditacion, ya que se produjo por una Acreditaccion en Arb Publico pero por ESPECIALIDAD en ARBITRAJE*/
			if(this.acreditacionContrataciones!=null && acreditaContratacion==false){
				/**Evaluo si solo obtuvo la Acre*/
				this.acreditacionContrataciones.setEstado(0L);
				registraAcreditacionEspecialidad(this.acreditacionContrataciones);
			}
		}
	}

	public void evaluaRegistroDeAcreditacionDerecho(boolean acreditacion){
		AcreditacionDTO nuevaAcreditacion=null;
		
		if(acreditacion){
			/**Verifico no tenga una Acreditacion ya registrada*/
			if(this.acreditacionDerechoAdm==null){
				nuevaAcreditacion=new AcreditacionDTO();
				nuevaAcreditacion.setIdFicha(this.fichaArbitral.getIdFicha());
				nuevaAcreditacion.setIndEspecialidad(ConstanteWeb.ESPECIALIDAD_DERECHO_ADM);
				registraAcreditacionEspecialidad(nuevaAcreditacion);	
				setMensajeroInfo("Registrada Acreditacion en ESPECIALIDAD DERECHO ADMINISTRATIVO");					
			}
		}else{
			/**Verifico si tiene una Acreditacion ya registrada, y la Desactivo*/
			if(this.acreditacionDerechoAdm!=null){
				this.acreditacionDerechoAdm.setEstado(0L);
				registraAcreditacionEspecialidad(this.acreditacionDerechoAdm);
				
			}
		}
	}
	public boolean evaluaAcreditacionPorValorRegla(int totalValor,Integer valorRegla){
		if(totalValor>=valorRegla){
			return true;
		}else{
			return false;
		}
	}
	/**FINAL DE Evaluacion de ACreditacion de Especialidad*/
	public Integer obtieneRegla(String regla){
		Integer valorRegla=null;
		for (SelectItem item : repositorioDatos.getListaReglas()) {
			if(item.getLabel().equals(regla)){
				valorRegla=Integer.parseInt(""+item.getValue());
			}
		}
		return valorRegla;
	}
	public void cargarRegistroEspecialidadAcademicaPopup(Integer index){
		arbEspecialAcademica= this.listaEspecialidadAcademicaCompleta.get(obtieneIndexListaEspecialidadAcademica(index));
		Long estado=fichaArbitral.getIdEstadoFicha();
		this.btnAgregarEspecialidad=false;		
		if(this.arbEspecialAcademica.getIdEspecialidad()==null || estado==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE)))
		{
			this.esEditar=true;
			this.btnRectificarEspecialidad=true;
		}else
		{
			this.btnRectificarEspecialidad=true;
			this.esEditar=false;
		}
	}
	
	public void eliminarRegistroEspecialidadAcademica(Integer index){
		int indice=obtieneIndexListaEspecialidadAcademica(index);
		EspecialidadAcademicaDTO especialidadTemporal;
		
		if(this.btnAgregarEspecialidad){
			especialidadTemporal = this.listaEspecialidadAcademicaCompleta.get(indice);
			//Verifico si el Registro existe en la BD
			if(especialidadTemporal.getIdEspecialidad()!=null){
				//Si existe, cambio el estado a 0, el sistema lo tomara como eliminado de la BD
				especialidadTemporal.setEstado(0L);
				this.listaEspecialidadAcademicaCompleta.set(indice, especialidadTemporal);
			}else{
				//Simplemente elimino el registro de la Lista
				especialidadTemporal=this.listaEspecialidadAcademicaCompleta.remove(indice);
			}
			distribuirListaEspecialidad();
			calculaTotalEspAcademica();
		}else{
			setMensajeroInfo(propSirenas.getString(ConstanteWeb.MSJ_VALID_RECTIF));
		}		
	}
	
	public void cargarRegistroCapacitacionPopup(Integer index){
		arbEspecialCapacitacion= this.listaEspecialCapacitacionCompleta.get(obtieneIndexListaCapacitacion(index));
		Long estado= fichaArbitral.getIdEstadoFicha();
		this.btnAgregarCapacitacion=false;
		
		if(this.arbEspecialCapacitacion.getIdCapacitacion()==null ||
				estado==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE)))
			{
				this.esEditar=true;
				this.btnRectificarCapacitacion=true;
			}
		else
			{
				this.btnRectificarCapacitacion=true;
				this.esEditar=false;
			}
	}
	
	public void eliminarRegistroCapacitacion(Integer index){
		int indice=obtieneIndexListaCapacitacion(index);
		CapacitacionDTO capacitacionTemporal;
		
		if(this.btnAgregarCapacitacion){
			capacitacionTemporal= this.listaEspecialCapacitacionCompleta.get(indice);
			//Verifico si el Registro existe en la BD
			if(capacitacionTemporal.getIdCapacitacion()!=null){
				//Si existe, cambio el estado a 0, el sistema lo tomara como eliminado de la BD
				capacitacionTemporal.setEstado(0L);
				this.listaEspecialCapacitacionCompleta.set(indice, capacitacionTemporal);
			}else{
				//Simplemente elimino el registro de la Lista
				capacitacionTemporal=this.listaEspecialCapacitacionCompleta.remove(indice);
			}

			distribuirListaCapacitacion();
		}else{
			setMensajeroInfo(propSirenas.getString(ConstanteWeb.MSJ_VALID_RECTIF));
		}	
		
	}
	public void cargarRegistroDocenciaPopup(Integer index){	
		arbEspecialDocencia= this.listaEspecialDocenciaCompleta.get(obtieneIndexListaDocencia(index));
		Long estado= fichaArbitral.getIdEstadoFicha();
		this.btnAgregarDocencia=false;		
		if(this.arbEspecialDocencia.getIdDocencia()==null || estado==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE)))
			{
				this.esEditar=true;
				this.btnRectificarDocencia=true;
			}
		else
			{
				this.btnRectificarDocencia=true;
				this.esEditar=false;
			}
	}
	
	public void eliminarRegistroDocencia(Integer index){
		int indice=obtieneIndexListaDocencia(index);
		DocenciaDTO docenciaTemporal;
		if(this.btnAgregarDocencia){
			docenciaTemporal= this.listaEspecialDocenciaCompleta.get(indice);
			//Verifico si el Registro existe en la BD
			if(docenciaTemporal.getIdDocencia()!=null){
				//Si existe, cambio el estado a 0, el sistema lo tomara como eliminado de la BD
				docenciaTemporal.setEstado(0L);
				this.listaEspecialDocenciaCompleta.set(indice, docenciaTemporal);
			}else{
				//Simplemente elimino el registro de la Lista
				docenciaTemporal=this.listaEspecialDocenciaCompleta.remove(indice);
				arbEspecialDocencia= new DocenciaDTO();			
			}
			distribuirListaDocencia();
			calculaTotalDocencia();
		}else{
			setMensajeroInfo(propSirenas.getString(ConstanteWeb.MSJ_VALID_RECTIF));
		}		
	}
	
	public void cargarRegistroTrayectoriaArbitralPublicoPopup(Integer index){	
		arbEspecialTrayectoriaArbitralPublic= this.listaTrayectoriaArbitralPublicoCompleta.get(obtieneIndexListaTrayectoriaPublica(index));
		Long estado=fichaArbitral.getIdEstadoFicha();
		this.btnAgregarTrayectoriaPublica=false;
		
		if(this.arbEspecialTrayectoriaArbitralPublic.getIdTrayectoria()==null || estado==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE)))
			{
				this.esEditar=true;
				this.btnRectificarTrayectoriaPublica=true;
			}
		else
			{
				this.btnRectificarTrayectoriaPublica=true;
				this.esEditar=false;
			}
	}
	
	public void eliminarRegistroTrayectoriaArbitralPublico(Integer index){
		int indice=obtieneIndexListaTrayectoriaPublica(index);
		TrayectoriaArbitralDTO trayArbitralPublicTemporal;
		if(this.btnAgregarTrayectoriaPublica){
			trayArbitralPublicTemporal= this.listaTrayectoriaArbitralPublicoCompleta.get(indice);
			//Verifico si el Registro existe en la BD
			if(trayArbitralPublicTemporal.getIdTrayectoria()!=null){
				//Si existe, cambio el estado a 0, el sistema lo tomara como eliminado de la BD
				trayArbitralPublicTemporal.setEstado(0L);
				this.listaTrayectoriaArbitralPublicoCompleta.set(indice, trayArbitralPublicTemporal);
			}else{
				//Simplemente elimino el registro de la Lista
				trayArbitralPublicTemporal=this.listaTrayectoriaArbitralPublicoCompleta.remove(indice);
			}
			distribuirListaArbitrajePublico();
			calculaTotalArbPrivado();
			calculaTotalArbPublico();
		}else{
			setMensajeroInfo(propSirenas.getString(ConstanteWeb.MSJ_VALID_RECTIF));
		}	
		
	}
	
	public void cargarRegistroTrayectoriaArbitralPrivadoPopup(Integer index){	
		arbEspecialTrayectoriaArbitralPriv= this.listaTrayectoriaArbitralPrivadoCompleta.get(obtieneIndexListaTrayectoriaPrivado(index));
		Long estado=fichaArbitral.getIdEstadoFicha();
		this.btnAgregarTrayectoriaPriv=false;		
		if(this.arbEspecialTrayectoriaArbitralPriv.getIdTrayectoria()==null || estado==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE)))
			{
				this.esEditar=true;
				this.btnRectificarTrayectoriaPriv=true;	
			}
		else
			{
				this.btnRectificarTrayectoriaPriv=true;
				this.esEditar=false;
			}
	}
	
	public void eliminarRegistroTrayectoriaArbitralPrivado(Integer index){
		int indice=obtieneIndexListaTrayectoriaPrivado(index);
		TrayectoriaArbitralDTO trayArbitralPrivTemporal;
		if(this.btnAgregarTrayectoriaPriv){
			trayArbitralPrivTemporal= this.listaTrayectoriaArbitralPrivadoCompleta.get(indice);
			//Verifico si el Registro existe en la BD
			if(trayArbitralPrivTemporal.getIdTrayectoria()!=null){
				//Si existe, cambio el estado a 0, el sistema lo tomara como eliminado de la BD
				trayArbitralPrivTemporal.setEstado(0L);
				this.listaTrayectoriaArbitralPrivadoCompleta.set(indice, trayArbitralPrivTemporal);
			}else{
				//Simplemente elimino el registro de la Lista
				trayArbitralPrivTemporal=this.listaTrayectoriaArbitralPrivadoCompleta.remove(indice);
			}
			distribuirListaArbitrajePrivado();
			calculaTotalArbPrivado();
		}else{
			setMensajeroInfo(propSirenas.getString(ConstanteWeb.MSJ_VALID_RECTIF));
		}	
		
	}
	
	public void cargarRegistroExperienciaLaboralPopup(Integer index){	
		arbEspecialExperienciaLaboral= this.listaExperienciaLaboralCompleta.get(obtieneIndexListaExperienciaLaboral(index));
		Long estado=fichaArbitral.getIdEstadoFicha(); 
		this.btnAgregarExperienciaLaboral=false;
		if(this.arbEspecialExperienciaLaboral.getIdLaboral()==null || estado==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE)))
			{	
				this.esEditar=true;
				this.btnRectificarExperienciaLaboral=true;
			}
		else
			{	
				this.btnRectificarExperienciaLaboral=true;
				this.esEditar=false;
			}
	}
	
	public void eliminarRegistroExperienciaLaboral(Integer index){
		int indice=obtieneIndexListaExperienciaLaboral(index);
		ExperienciaLaboralDTO expLaboralTemporal;
		if(this.btnAgregarTrayectoriaPriv){
			expLaboralTemporal= this.listaExperienciaLaboralCompleta.get(indice);
			//Verifico si el Registro existe en la BD
			if(expLaboralTemporal.getIdLaboral()!=null){
				//Si existe, cambio el estado a 0, el sistema lo tomara como eliminado de la BD
				expLaboralTemporal.setEstado(0L);
				this.listaExperienciaLaboralCompleta.set(indice, expLaboralTemporal);
			}else{
				//Simplemente elimino el registro de la Lista
				expLaboralTemporal=this.listaExperienciaLaboralCompleta.remove(indice);
			}
			distribuirListaLaboral();
			calculaTotalExpLaboral();
		}else{
			setMensajeroInfo(propSirenas.getString(ConstanteWeb.MSJ_VALID_RECTIF));
		}	
		
	}
	
	
	public void rectificarRegistroEspecialidadAcademica(){
		if(validaFormAcademica()){
			if(ValidadReglaEspecialidadAcademica())
				{
				if(this.arbEspecialAcademica.getIdEspecialidad()!=null)
					this.arbEspecialAcademica.setIdModificado(this.arbEspecialAcademica.getIdEspecialidad());
				this.arbEspecialAcademica.setDescAreaProfesion(repositorioDatos.getLabelAreaProfesion(arbEspecialAcademica.getIdAreaProfesion()).toUpperCase());
				this.arbEspecialAcademica.setDescCentroEstudios(repositorioDatos.getLabelCentroEstudios(arbEspecialAcademica.getIdCentroEstudios()).toUpperCase());
				this.arbEspecialAcademica.setDescGradoObtenido(repositorioDatos.getLabelParametro(arbEspecialAcademica.getIndGradoObtenido()).toUpperCase());
				this.arbEspecialAcademica.setDescPais(repositorioDatos.getLabelPais(arbEspecialAcademica.getIdPais()).toUpperCase());
				this.arbEspecialAcademica.setDescripcionGrado(arbEspecialAcademica.getDescripcionGrado().toUpperCase());
				int indice=obtieneIndexListaEspecialidadAcademica(this.arbEspecialAcademica.getIndex());
				this.listaEspecialidadAcademicaCompleta.set(indice, this.arbEspecialAcademica);
				limpiarObjetos();
				this.btnAgregarEspecialidad=true;
				this.btnRectificarEspecialidad=false;
				distribuirListaEspecialidad();
				calculaTotalEspAcademica();
				cerrarEspAcademicaPopup();
				this.esEditar=false;
			}
		}
	}
	public void cancelarRectificacionEspecialidad(){
		this.btnAgregarEspecialidad=true;
		this.btnRectificarEspecialidad=false;
		this.arbEspecialAcademica= new EspecialidadAcademicaDTO();
		cerrarEspAcademicaPopup();
	}
	public void rectificarRegistroCapacitacion(){
		if(validaCapacitacion()){
			int indice=obtieneIndexListaCapacitacion(this.arbEspecialCapacitacion.getIndex());
			if(this.arbEspecialCapacitacion.getIdCapacitacion()!=null)
				this.arbEspecialCapacitacion.setIdModificado(this.arbEspecialCapacitacion.getIdCapacitacion());
			this.arbEspecialCapacitacion.setNomCapacitacion(this.arbEspecialCapacitacion.getNomCapacitacion().toUpperCase());
			this.arbEspecialCapacitacion.setNomInstitucion(this.arbEspecialCapacitacion.getNomInstitucion().toUpperCase());
			this.listaEspecialCapacitacionCompleta.set(indice, this.arbEspecialCapacitacion);
			limpiarObjetos();
			this.btnAgregarCapacitacion=true;
			this.btnRectificarCapacitacion=false;
			this.esEditar=false;

			distribuirListaCapacitacion();
			cerrarCapacitacionPopup();
		}
	}

	public void cancelarRectificacionCapacitacion(){
		this.btnAgregarCapacitacion=true;
		this.btnRectificarCapacitacion=false;
		this.arbEspecialCapacitacion= new CapacitacionDTO();
		cerrarCapacitacionPopup();
	}
	public void rectificarRegistroDocencia(){
		if(validaDocencia()){
			if(this.arbEspecialDocencia.getIdDocencia()!=null)
				this.arbEspecialDocencia.setIdModificado(this.arbEspecialDocencia.getIdDocencia());
			arbEspecialDocencia.setDescCentroEstudios(repositorioDatos.getLabelCentroEstudios(arbEspecialDocencia.getIdCentroEstudios()).toUpperCase());
			arbEspecialDocencia.setDescTipoActividad(repositorioDatos.getLabelParametro(arbEspecialDocencia.getIndTipoActividad()).toUpperCase());
			arbEspecialDocencia.setDescTipoDuracion(repositorioDatos.getLabelParametro(arbEspecialDocencia.getIndTipoDuracion()).toUpperCase());
			arbEspecialDocencia.setDescripcionCurso(this.arbEspecialDocencia.getDescripcionCurso().toUpperCase());
			int indice=obtieneIndexListaDocencia(this.arbEspecialDocencia.getIndex());
			this.listaEspecialDocenciaCompleta.set(indice, this.arbEspecialDocencia);
			limpiarObjetos();
			this.btnAgregarDocencia=true;
			this.btnRectificarDocencia=false;
			this.esEditar=false;
			distribuirListaDocencia();
			cerrarDocenciaPopup();
			calculaTotalDocencia();
		}
	}

	public void cancelarRectificacionDocencia(){
		this.btnAgregarDocencia=true;
		this.btnRectificarDocencia=false;
		this.arbEspecialAcademica= new EspecialidadAcademicaDTO();
		cerrarDocenciaPopup();
	}
	public void rectificarRegistroTrayectoriaArbitralPublica(){
		if(validaTrayectoriaPublica()){
			if(validarFechaTrayectoriaPublica()){
				if(this.arbEspecialTrayectoriaArbitralPublic.getIdTrayectoria()!=null)
					this.arbEspecialTrayectoriaArbitralPublic.setIdModificado(this.arbEspecialTrayectoriaArbitralPublic.getIdTrayectoria());
				this.arbEspecialTrayectoriaArbitralPublic.setDescTipoArbitraje(repositorioDatos.getLabelParametro(arbEspecialTrayectoriaArbitralPublic.getIndTipoArbitraje().longValue()).toUpperCase());	
				this.arbEspecialTrayectoriaArbitralPublic.setNomEntidad(this.arbEspecialTrayectoriaArbitralPublic.getNomEntidad().toUpperCase());
				this.arbEspecialTrayectoriaArbitralPublic.setNomContratista(this.arbEspecialTrayectoriaArbitralPublic.getNomContratista().toUpperCase());
				this.arbEspecialTrayectoriaArbitralPublic.setObjContratacion(this.arbEspecialTrayectoriaArbitralPublic.getObjContratacion().toUpperCase());
				this.arbEspecialTrayectoriaArbitralPublic.setNumContrato(this.arbEspecialTrayectoriaArbitralPublic.getNumContrato().toUpperCase());
				this.arbEspecialTrayectoriaArbitralPublic.setIdesMateriaControvertida(obtenerCadenaMateriaControvertida());
				this.arbEspecialTrayectoriaArbitralPublic.setListaMateriaControvertida(convertirListaMateriaControvertida(this.arbEspecialTrayectoriaArbitralPublic.getIdesMateriaControvertida()));
				int indice=obtieneIndexListaTrayectoriaPublica(this.arbEspecialTrayectoriaArbitralPublic.getIndex());
				this.listaTrayectoriaArbitralPublicoCompleta.set(indice, this.arbEspecialTrayectoriaArbitralPublic);
				limpiarObjetos();	
				this.btnAgregarTrayectoriaPublica=true;
				this.btnRectificarTrayectoriaPublica=false;
				this.esEditar=false;
				distribuirListaArbitrajePublico();
				calculaTotalArbPublico();
				cerrarTrayectoriaPublicaPopup();
			}
		}
	}
	public void cancelarRectificacionTrayectoriaArbitralPublica(){
		this.btnAgregarTrayectoriaPublica=true;
		this.btnRectificarTrayectoriaPublica=false;
		this.arbEspecialTrayectoriaArbitralPublic= new TrayectoriaArbitralDTO();
		cerrarTrayectoriaPublicaPopup();
	}	
	public void rectificarRegistroTrayectoriaArbitralPrivado(){
		if(validaTrayectoriaPrivada()){
			if(this.arbEspecialTrayectoriaArbitralPriv.getIdTrayectoria()!=null)
					this.arbEspecialTrayectoriaArbitralPriv.setIdModificado(this.arbEspecialTrayectoriaArbitralPriv.getIdTrayectoria());
			arbEspecialTrayectoriaArbitralPriv.setDescMateriaControvertida(repositorioDatos.getLabelMateriaControversia(arbEspecialTrayectoriaArbitralPriv.getIdMateriaControvertida().longValue()).toUpperCase());
			arbEspecialTrayectoriaArbitralPriv.setIdesMateriaControvertida(""+arbEspecialTrayectoriaArbitralPriv.getIdMateriaControvertida() );
			arbEspecialTrayectoriaArbitralPriv.setDescTipoArbitraje(repositorioDatos.getLabelParametro(arbEspecialTrayectoriaArbitralPriv.getIndTipoArbitraje()).toUpperCase());	
			this.arbEspecialTrayectoriaArbitralPriv.setNomEntidad(this.arbEspecialTrayectoriaArbitralPriv.getNomEntidad().toUpperCase());
			this.arbEspecialTrayectoriaArbitralPriv.setNomContratista(this.arbEspecialTrayectoriaArbitralPriv.getNomContratista().toUpperCase());
			this.arbEspecialTrayectoriaArbitralPriv.setObjContratacion(this.arbEspecialTrayectoriaArbitralPriv.getObjContratacion().toUpperCase());
			
			int indice=obtieneIndexListaTrayectoriaPrivado(this.arbEspecialTrayectoriaArbitralPriv.getIndex());
			
			this.listaTrayectoriaArbitralPrivadoCompleta.set(indice, this.arbEspecialTrayectoriaArbitralPriv);
			limpiarObjetos();
			this.btnAgregarTrayectoriaPriv=true;
			this.btnRectificarTrayectoriaPriv=false;
			this.esEditar=false;
			distribuirListaArbitrajePrivado();
			calculaTotalArbPrivado();
			cerrarTrayectoriaPrivadoPopup();
		}
	}
	public void cancelarRectificacionTrayectoriaArbitralPrivado(){
		this.btnAgregarTrayectoriaPriv=true;
		this.btnRectificarTrayectoriaPriv=false;
		this.arbEspecialTrayectoriaArbitralPriv= new TrayectoriaArbitralDTO();
		cerrarTrayectoriaPrivadoPopup();
	}	
	
	public void rectificarRegistroExperiencialaboral(){
		if(validaExpLaboral()){
			if(validarFechaExperienciaLaboral())
			{
				if(this.arbEspecialExperienciaLaboral.getIdLaboral()!=null)
					this.arbEspecialExperienciaLaboral.setIdModificado(this.arbEspecialExperienciaLaboral.getIdLaboral());
				this.arbEspecialExperienciaLaboral.setNomCentroTrabajo(this.arbEspecialExperienciaLaboral.getNomCentroTrabajo().toUpperCase());
				this.arbEspecialExperienciaLaboral.setDescripcionCargo(this.arbEspecialExperienciaLaboral.getDescripcionCargo().toUpperCase());
				this.arbEspecialExperienciaLaboral.setVigente(convertAString(this.arbEspecialExperienciaLaboral.getIndicadorActual()));
				int indice=obtieneIndexListaExperienciaLaboral(this.arbEspecialExperienciaLaboral.getIndice());
				this.listaExperienciaLaboralCompleta.set(indice, this.arbEspecialExperienciaLaboral);
				limpiarObjetos();
				this.btnAgregarExperienciaLaboral=true;
				this.btnRectificarExperienciaLaboral=false;
				this.esEditar=false;
				distribuirListaLaboral();
				calculaTotalExpLaboral();
				cerrarExperienciaLaboralPopup();
			}
		}	
	}
	
	public void mostrarfechaActual()
	
	{
		  String summary = this.arbEspecialExperienciaLaboral.getIndicadorActual() ? "Checked" : "Unchecked"; 
		  
		  if(summary.equals("Checked"))
		  {
			  this.arbEspecialExperienciaLaboral.setFecEgreso(new Date());
			  this.habilitarFechaCese=true;
		  }
		  else
		  {
			  
			  this.habilitarFechaCese=false;
		  }
		  
		  
	}
	
	
	
	public void cancelarRectificacionExperiencialaboral(){
		this.btnAgregarExperienciaLaboral=true;
		this.btnRectificarExperienciaLaboral=false;
		this.arbEspecialExperienciaLaboral= new ExperienciaLaboralDTO();
		cerrarExperienciaLaboralPopup();
	}		
	
	public int obtieneIndexListaEspecialidadAcademica(Integer index){
		int indice=0;
		for (EspecialidadAcademicaDTO especialidadAcademica : this.listaEspecialidadAcademicaCompleta) {
			if(especialidadAcademica .getIndex()==index){
				break;
			}
			indice++;
		}
		return indice;
	}	
	public int obtieneIndexListaCapacitacion(Integer index){
		int indice=0;
		for (CapacitacionDTO capacitacion : this.listaEspecialCapacitacionCompleta) {
			if(capacitacion.getIndex()==index){
				break;
			}
			indice++;
		}
		return indice;
	}	
	public int obtieneIndexListaDocencia(Integer index){
		int indice=0;
		for (DocenciaDTO docencia : this.listaEspecialDocenciaCompleta) {
			if(docencia.getIndex()==index){
				break;
			}
			indice++;
		}
		return indice;
	}	
	
	public int obtieneIndexListaTrayectoriaPublica(Integer index){
		int indice=0;
		for (TrayectoriaArbitralDTO trayectoriaArbitralPublic: this.listaTrayectoriaArbitralPublicoCompleta) {
			if(trayectoriaArbitralPublic.getIndex()==index){
				break;
			}
			indice++;
		}
		return indice;
	}	
	
	public int obtieneIndexListaTrayectoriaPrivado(Integer index){
		int indice=0;
		for (TrayectoriaArbitralDTO trayectoriaArbitralPriv: this.listaTrayectoriaArbitralPrivadoCompleta) {
			if(trayectoriaArbitralPriv.getIndex()==index){
				break;
			}
			indice++;
		}
		return indice;
	}	
	
	public int obtieneIndexListaExperienciaLaboral(Integer index){
		int indice=0;
		for (ExperienciaLaboralDTO experienciaLaboral: this.listaExperienciaLaboralCompleta) {
			if(experienciaLaboral.getIndice()==index){
				break;
			}
			indice++;
		}
		return indice;
	}	
	
	public void verHistorialEspecialidadAcademica(Long idEspecialidadAcademica ){
		
		try {
			this.listArbEspecialidadAcademicaHistorial= new ArrayList<EspecialidadAcademicaDTO>();
			this.listArbEspecialidadAcademicaHistorial=registrarFichaArbitroService.consultarHistorialEspecialidadAcademica(idEspecialidadAcademica);
			
			if(this.listArbEspecialidadAcademicaHistorial!=null)
			{
				for (EspecialidadAcademicaDTO especialidadAcademicaHistorialDTO : listArbEspecialidadAcademicaHistorial) {
					especialidadAcademicaHistorialDTO.setDescTipoFormacion(repositorioDatos.getLabelParametro(especialidadAcademicaHistorialDTO.getIndTipoFormacion().longValue()));
					especialidadAcademicaHistorialDTO.setDescPais(repositorioDatos.getLabelPais(especialidadAcademicaHistorialDTO.getIdPais().longValue()));
					especialidadAcademicaHistorialDTO.setDescAreaProfesion(repositorioDatos.getLabelAreaProfesion(especialidadAcademicaHistorialDTO.getIdAreaProfesion()));
					especialidadAcademicaHistorialDTO.setDescCentroEstudios(repositorioDatos.getLabelCentroEstudios(especialidadAcademicaHistorialDTO.getIdCentroEstudios()));
					especialidadAcademicaHistorialDTO.setDescGradoObtenido(repositorioDatos.getLabelParametro(especialidadAcademicaHistorialDTO.getIndGradoObtenido().longValue()));			
				}
			}
		} catch (Exception e) {
			this.listArbEspecialidadAcademicaHistorial= new ArrayList<EspecialidadAcademicaDTO>();
		}
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogEspecialidadHistorial').show();");
	}
	
	  public void cancelarPopupEspecialidadHistorial(){
		
			this.listArbEspecialidadAcademicaHistorial= new ArrayList<EspecialidadAcademicaDTO>();
			cerrarEspAcademicaHistorialPopup();
	  }
	  public void cerrarEspAcademicaHistorialPopup(){
			context = RequestContext.getCurrentInstance();
			context.execute("PF('dialogEspecialidadHistorial').hide();");
	  }
	
	
	 public void verHistorialCapacitacion(Long idCapacitacion){
				
				try {
					this.listArbEspecialCapacitacionHistorial= new ArrayList<CapacitacionDTO>();
					this.listArbEspecialCapacitacionHistorial=registrarFichaArbitroService.consultarHistorialCapacitacion(idCapacitacion);
					
					
				} catch (Exception e) {
					this.listArbEspecialCapacitacionHistorial= new ArrayList<CapacitacionDTO>();
				}
				context = RequestContext.getCurrentInstance();
				context.execute("PF('dialogCapacitacionHistorial').show();");	
	}
	
	public void cancelarPopupCapacitacionHistorial(){
	
		this.listArbEspecialCapacitacionHistorial= new ArrayList<CapacitacionDTO>();
		cerrarEspCapacitacionHistorialPopup();
	}
	public void cerrarEspCapacitacionHistorialPopup(){
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogCapacitacionHistorial').hide();");
	}
	

	 public void verHistorialDocencia(Long idDocencia){
				
		try {
			this.listArbEspecialDocenciaHistorial= new ArrayList<DocenciaDTO>();
			this.listArbEspecialDocenciaHistorial=registrarFichaArbitroService.consultarHistorialDocencia(idDocencia);
			
			
			if (listArbEspecialDocenciaHistorial!= null) {
				for (DocenciaDTO docenciaHistorialDTO : listArbEspecialDocenciaHistorial) {
					
					docenciaHistorialDTO.setDescCentroEstudios(repositorioDatos.getLabelCentroEstudios(docenciaHistorialDTO.getIdCentroEstudios().longValue()));
					docenciaHistorialDTO.setDescTipoActividad(repositorioDatos.getLabelParametro(docenciaHistorialDTO.getIndTipoActividad().longValue()));
					docenciaHistorialDTO.setDescTipoDuracion(repositorioDatos.getLabelParametro(docenciaHistorialDTO.getIndTipoDuracion().longValue()));
					
				}	
			}
		} catch (Exception e) {
			this.listArbEspecialDocenciaHistorial= new ArrayList<DocenciaDTO>();
		}
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogDocenciaHistorial').show();");	
	}
	 public void cancelarPopupDocenciaHistorial(){
			
		 this.listArbEspecialDocenciaHistorial= new ArrayList<DocenciaDTO>();
			cerrarEspDocenciaHistorialPopup();
	  }
	public void cerrarEspDocenciaHistorialPopup(){
			context = RequestContext.getCurrentInstance();
			context.execute("PF('dialogDocenciaHistorial').hide();");
	}
	

	 public void verHistorialTrayectoriaArbitralPublica(Long idTrayectoria){
				
		try {
			this.listArbEspecialTrayectoriaArbitralPublicHistorial= new ArrayList<TrayectoriaArbitralDTO>();
			this.listArbEspecialTrayectoriaArbitralPublicHistorial=registrarFichaArbitroService.consultarHistorialTrayectoriaArbitral(idTrayectoria);
			
			
			if (listArbEspecialTrayectoriaArbitralPublicHistorial!= null) {
				for (TrayectoriaArbitralDTO trayectoriaArbitralhistorialDTO : listArbEspecialTrayectoriaArbitralPublicHistorial) {					
					trayectoriaArbitralhistorialDTO.setDescMateriaControvertida(repositorioDatos.getLabelParametro(trayectoriaArbitralhistorialDTO.getIdMateriaControvertida().longValue()));
					trayectoriaArbitralhistorialDTO.setDescTipoArbitraje(repositorioDatos.getLabelParametro(trayectoriaArbitralhistorialDTO.getIndTipoArbitraje().longValue()));
					
				}	
			}
		} catch (Exception e) {
			this.listArbEspecialTrayectoriaArbitralPublicHistorial= new ArrayList<TrayectoriaArbitralDTO>();
		}
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogTrayectoriaPublicaHistorial').show();");		
	}
	
	 public void cancelarPopupTrayectoriaArbitralPublicaHistorial(){
			
		 this.listArbEspecialTrayectoriaArbitralPublicHistorial= new ArrayList<TrayectoriaArbitralDTO>();
		 cerrarTrayectoriaArbitralPublicaHistorialPopup();
	  }
	public void cerrarTrayectoriaArbitralPublicaHistorialPopup(){
			context = RequestContext.getCurrentInstance();
			context.execute("PF('dialogTrayectoriaPublicaHistorial').hide();");
	}
	

	 public void verHistorialTrayectoriaArbitralPrivado(Long idTrayectoria){
				
		try {
			this.listArbEspecialTrayectoriaArbitralPrivHistorial= new ArrayList<TrayectoriaArbitralDTO>();
			this.listArbEspecialTrayectoriaArbitralPrivHistorial=registrarFichaArbitroService.consultarHistorialTrayectoriaArbitral(idTrayectoria);
			
			
			if (listArbEspecialTrayectoriaArbitralPrivHistorial!= null) {
				for (TrayectoriaArbitralDTO trayectoriaArbitralhistorialPrivDTO : listArbEspecialTrayectoriaArbitralPrivHistorial) {					
					trayectoriaArbitralhistorialPrivDTO.setDescMateriaControvertida(repositorioDatos.getLabelParametro(trayectoriaArbitralhistorialPrivDTO.getIdMateriaControvertida().longValue()));
					trayectoriaArbitralhistorialPrivDTO.setDescTipoArbitraje(repositorioDatos.getLabelParametro(trayectoriaArbitralhistorialPrivDTO.getIndTipoArbitraje().longValue()));
					
				}	
			}
		} catch (Exception e) {
			this.listArbEspecialTrayectoriaArbitralPrivHistorial= new ArrayList<TrayectoriaArbitralDTO>();
		}
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogTrayectoriaPrivadoHistorial').show();");		
	}
	
	 public void cancelarPopupTrayectoriaArbitralPrivadoHistorial(){
			
		 this.listArbEspecialTrayectoriaArbitralPrivHistorial= new ArrayList<TrayectoriaArbitralDTO>();
		 cerrarTrayectoriaArbitralPrivadoHistorialPopup();
	  }
	public void cerrarTrayectoriaArbitralPrivadoHistorialPopup(){
			context = RequestContext.getCurrentInstance();
			context.execute("PF('dialogTrayectoriaPrivadoHistorial').hide();");
	}
	
	 public void verHistorialExperienciaLaboral(Long idExperienciaLaboral){
			
			try {
				this.listArbEspecialExperienciaLaboralHistorial= new ArrayList<ExperienciaLaboralDTO>();
				this.listArbEspecialExperienciaLaboralHistorial=registrarFichaArbitroService.consultarHistorialExperienciaLaboral(idExperienciaLaboral);
				
			} catch (Exception e) {
				this.listArbEspecialExperienciaLaboralHistorial= new ArrayList<ExperienciaLaboralDTO>();
			}
			
			context = RequestContext.getCurrentInstance();
			context.execute("PF('dialogExperienciaLaboralHistorial').show()");		
			
		}
	 public void cancelarPopupExperienciaLaboralHistorial(){
			
		 this.listArbEspecialExperienciaLaboralHistorial= new ArrayList<ExperienciaLaboralDTO>();
		 cerrarExperienciaLaboralHistorialPopup();
	  }
	public void cerrarExperienciaLaboralHistorialPopup(){
			context = RequestContext.getCurrentInstance();
			context.execute("PF('dialogExperienciaLaboralHistorial').hide();");
	}
	public void abrirConfirmacionPopup(){
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogoConfirmacion').show();");
	}
	public void cerrarConfirmacionPopup(){
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogoConfirmacion').hide();");
	}
	public void abrirCodTramitePopup(){
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogoTramite').show();");
	}
	public void cerrarCodTramitePopup(){
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogoTramite').hide();");
	}	
	
	public void validaRectificacion(){
		this.fichaArbitral =(FichaArbitralDTO)obtenerObjetoSession(ConstanteWeb.FICHA_REGISTRO);		
		if(fichaArbitral.getIdEstadoFicha()==Long.parseLong(propSirenas.getString(ConstanteWeb.ID_ESTADO_PENDIENTE))){
			guardarContrataciones();
		}else{
			if(encuentraRectificados()){
				abrirCodTramitePopup();
			}else{
				guardarContrataciones();
			}
		}
		cerrarConfirmacionPopup();
	}
	
	
	public boolean encuentraRectificados(){
		boolean rectificados=false;
		for (EspecialidadAcademicaDTO especilidadAcademicaDTO : this.listaEspecialidadAcademicaCompleta) {
			if(especilidadAcademicaDTO.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO))){
				rectificados=true;
				break;
			}				
		}
		for (CapacitacionDTO capacitacionDTO : this.listaEspecialCapacitacionCompleta) {
			if(capacitacionDTO.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO))){
				rectificados=true;
				break;
			}				
		}
		for (DocenciaDTO docenciaDTO : this.listaEspecialDocenciaCompleta) {
			if(docenciaDTO.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO))){
				rectificados=true;
				break;
			}				
		}
		for (TrayectoriaArbitralDTO trayecPublicaDTO : this.listaTrayectoriaArbitralPublicoCompleta) {
			if(trayecPublicaDTO.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO))){
				rectificados=true;
				break;
			}				
		}		
		for (TrayectoriaArbitralDTO trayecPrivadoDTO : this.listaTrayectoriaArbitralPrivadoCompleta) {
			if(trayecPrivadoDTO.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO))){
				rectificados=true;
				break;
			}				
		}
		for (ExperienciaLaboralDTO expLaboralDTO : this.listaExperienciaLaboralCompleta) {
			if(expLaboralDTO.getIdModificado()!=Long.parseLong(propSirenas.getString(ConstanteWeb.VALORCERO))){
				rectificados=true;
				break;
			}				
		}
		return rectificados;
	}
	
	public void validaCodTramite(){
		if(this.codTramite!=null && this.codTramite.trim().length()>0){
			cerrarCodTramitePopup();
			guardarContrataciones();
			
		}else{
			setMensajeroInfo(propSirenas.getString(ConstanteWeb.MSJ_REG_ERROR_COD_TRAMITE));
		}
	}
	
	
	/** Seccion de Busquecor de Contrataciones*/

	
	
	public void cerrarBuscarContrataciones(){
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogBuscarContrataciones').hide();");
	}
	public void abrirBuscarContrataciones(){
		this.listaEntidadesDTO = new ArrayList<EntidadDTO>();
		this.listaObjetoContratacionDTO = new ArrayList<ObjetoContratacionDTO>();
		this.listaProcesoProdDTO = new ArrayList<ProcesoProdDTO>();
		this.busquedaContratoDTO = new BusquedaContratoDTO();
		this.listaContrataciones= new ArrayList<BusquedaContratoDTO>();

		RequestContext.getCurrentInstance().update("gridPopupTrayectoriaBusqueda");
		
		context = RequestContext.getCurrentInstance();
		context.execute("PF('dialogBuscarContrataciones').show();");
	}
	
	public void cargarEntidadContratacion(){
		try{
			this.listaEntidadesDTO = new ArrayList<EntidadDTO>();
			buscarContratacionesService.obtenerListaEntidad(this.busquedaContratoDTO.getEntidadDTO());
			
		} catch (ModeloException e) {
			setMensajeroError(propSirenas.getString(ConstanteWeb.EXC_MODELO_TITLE),e.getMessage());
		}	 catch (Exception e) {
			setMensajeroError(propSirenas.getString(ConstanteWeb.EXC_VISTA_TITLE),propSirenas.getString(ConstanteWeb.EXC_VISTA_SOLICITUD));
		}
	}

	public void buscarContrataciones(){
		try{
			this.listaEntidadesDTO = new ArrayList<EntidadDTO>();
			buscarContratacionesService.obtenerListaEntidad(this.busquedaContratoDTO.getEntidadDTO());
			
		} catch (ModeloException e) {
			setMensajeroError(propSirenas.getString(ConstanteWeb.EXC_MODELO_TITLE),e.getMessage());
		}	 catch (Exception e) {
			setMensajeroError(propSirenas.getString(ConstanteWeb.EXC_VISTA_TITLE),propSirenas.getString(ConstanteWeb.EXC_VISTA_SOLICITUD));
		}
	}
	
	
	
	
	
	public AuditoriaDTO getAuditoria() {
		return auditoria;
	}
	public void setAuditoria(AuditoriaDTO auditoria) {
		this.auditoria = auditoria;
	}
	public FichaArbitralDTO getFichaArbitral() {
		return fichaArbitral;
	}
	public void setFichaArbitral(FichaArbitralDTO fichaArbitral) {
		this.fichaArbitral = fichaArbitral;
	}
	
	
	public CapacitacionDTO getCapacitacion() {
		return capacitacion;
	}
	public void setCapacitacion(CapacitacionDTO capacitacion) {
		this.capacitacion = capacitacion;
	}	
	
	public RegistrarFichaArbitroServiceLocal getRegistrarFichaArbitroService() {
		return registrarFichaArbitroService;
	}
	public void setRegistrarFichaArbitroService(
			RegistrarFichaArbitroServiceLocal registrarFichaArbitroService) {
		this.registrarFichaArbitroService = registrarFichaArbitroService;
	}


	/**
	 * Metodo que permite obtener indicadorEspecialidad.
	 * @return indicadorEspecialidad , tipo Integer.
	 */
	public Integer getIndicadorEspecialidad() {
		return indicadorEspecialidad;
	}

	/**
	 * Permite actualizar indicadorEspecialidad.
	 * @param indicadorEspecialidad, tipo Integer.
	 */
	public void setIndicadorEspecialidad(Integer indicadorEspecialidad) {
		this.indicadorEspecialidad = indicadorEspecialidad;
	}

	public CapacitacionDTO getArbEspecialCapacitacion() {
		return arbEspecialCapacitacion;
	}
	public void setArbEspecialCapacitacion(CapacitacionDTO arbEspecialCapacitacion) {
		this.arbEspecialCapacitacion = arbEspecialCapacitacion;
	}
	public DocenciaDTO getArbEspecialDocencia() {
		return arbEspecialDocencia;
	}
	public void setArbEspecialDocencia(DocenciaDTO arbEspecialDocencia) {
		this.arbEspecialDocencia = arbEspecialDocencia;
	}
	public TrayectoriaArbitralDTO getArbEspecialTrayectoriaArbitralPublic() {
		return arbEspecialTrayectoriaArbitralPublic;
	}
	public void setArbEspecialTrayectoriaArbitralPublic(
			TrayectoriaArbitralDTO arbEspecialTrayectoriaArbitralPublic) {
		this.arbEspecialTrayectoriaArbitralPublic = arbEspecialTrayectoriaArbitralPublic;
	}
	public TrayectoriaArbitralDTO getArbEspecialTrayectoriaArbitralPriv() {
		return arbEspecialTrayectoriaArbitralPriv;
	}
	public void setArbEspecialTrayectoriaArbitralPriv(
			TrayectoriaArbitralDTO arbEspecialTrayectoriaArbitralPriv) {
		this.arbEspecialTrayectoriaArbitralPriv = arbEspecialTrayectoriaArbitralPriv;
	}

	public ExperienciaLaboralDTO getArbEspecialExperienciaLaboral() {
		return arbEspecialExperienciaLaboral;
	}
	public void setArbEspecialExperienciaLaboral(
			ExperienciaLaboralDTO arbEspecialExperienciaLaboral) {
		this.arbEspecialExperienciaLaboral = arbEspecialExperienciaLaboral;
	}
	public EspecialidadAcademicaDTO getArbEspecialAcademica() {
		return arbEspecialAcademica;
	}



	public void setArbEspecialAcademica(
			EspecialidadAcademicaDTO arbEspecialAcademica) {
		this.arbEspecialAcademica = arbEspecialAcademica;
	}




	/**
	 * Metodo que permite obtener listaEspecialidadAcademicaCompleta.
	 * @return listaEspecialidadAcademicaCompleta , tipo List<EspecialidadAcademicaDTO>.
	 */
	public List<EspecialidadAcademicaDTO> getListaEspecialidadAcademicaCompleta() {
		return listaEspecialidadAcademicaCompleta;
	}

	/**
	 * Permite actualizar listaEspecialidadAcademicaCompleta.
	 * @param listaEspecialidadAcademicaCompleta, tipo List<EspecialidadAcademicaDTO>.
	 */
	public void setListaEspecialidadAcademicaCompleta(
			List<EspecialidadAcademicaDTO> listaEspecialidadAcademicaCompleta) {
		this.listaEspecialidadAcademicaCompleta = listaEspecialidadAcademicaCompleta;
	}

	public Boolean getBtnAgregarEspecialidad() {
		return btnAgregarEspecialidad;
	}


	public void setBtnAgregarEspecialidad(Boolean btnAgregarEspecialidad) {
		this.btnAgregarEspecialidad = btnAgregarEspecialidad;
	}


	public Boolean getBtnRectificarEspecialidad() {
		return btnRectificarEspecialidad;
	}


	public void setBtnRectificarEspecialidad(Boolean btnRectificarEspecialidad) {
		this.btnRectificarEspecialidad = btnRectificarEspecialidad;
	}


	public Boolean getBtnAgregarCapacitacion() {
		return btnAgregarCapacitacion;
	}


	public void setBtnAgregarCapacitacion(Boolean btnAgregarCapacitacion) {
		this.btnAgregarCapacitacion = btnAgregarCapacitacion;
	}


	public Boolean getBtnRectificarCapacitacion() {
		return btnRectificarCapacitacion;
	}


	public void setBtnRectificarCapacitacion(Boolean btnRectificarCapacitacion) {
		this.btnRectificarCapacitacion = btnRectificarCapacitacion;
	}


	public Boolean getBtnAgregarDocencia() {
		return btnAgregarDocencia;
	}


	public void setBtnAgregarDocencia(Boolean btnAgregarDocencia) {
		this.btnAgregarDocencia = btnAgregarDocencia;
	}


	public Boolean getBtnRectificarDocencia() {
		return btnRectificarDocencia;
	}


	public void setBtnRectificarDocencia(Boolean btnRectificarDocencia) {
		this.btnRectificarDocencia = btnRectificarDocencia;
	}


	public Boolean getBtnAgregarTrayectoriaPublica() {
		return btnAgregarTrayectoriaPublica;
	}


	public void setBtnAgregarTrayectoriaPublica(Boolean btnAgregarTrayectoriaPublica) {
		this.btnAgregarTrayectoriaPublica = btnAgregarTrayectoriaPublica;
	}


	public Boolean getBtnRectificarTrayectoriaPublica() {
		return btnRectificarTrayectoriaPublica;
	}


	public void setBtnRectificarTrayectoriaPublica(
			Boolean btnRectificarTrayectoriaPublica) {
		this.btnRectificarTrayectoriaPublica = btnRectificarTrayectoriaPublica;
	}


	public Boolean getBtnAgregarTrayectoriaPriv() {
		return btnAgregarTrayectoriaPriv;
	}


	public void setBtnAgregarTrayectoriaPriv(Boolean btnAgregarTrayectoriaPriv) {
		this.btnAgregarTrayectoriaPriv = btnAgregarTrayectoriaPriv;
	}


	public Boolean getBtnRectificarTrayectoriaPriv() {
		return btnRectificarTrayectoriaPriv;
	}


	public void setBtnRectificarTrayectoriaPriv(Boolean btnRectificarTrayectoriaPriv) {
		this.btnRectificarTrayectoriaPriv = btnRectificarTrayectoriaPriv;
	}


	public Boolean getBtnAgregarExperienciaLaboral() {
		return btnAgregarExperienciaLaboral;
	}


	public void setBtnAgregarExperienciaLaboral(Boolean btnAgregarExperienciaLaboral) {
		this.btnAgregarExperienciaLaboral = btnAgregarExperienciaLaboral;
	}


	public Boolean getBtnRectificarExperienciaLaboral() {
		return btnRectificarExperienciaLaboral;
	}


	public void setBtnRectificarExperienciaLaboral(
			Boolean btnRectificarExperienciaLaboral) {
		this.btnRectificarExperienciaLaboral = btnRectificarExperienciaLaboral;
	}

	/**
	 * Metodo que permite obtener totalEspAcademicaContrataciones.
	 * @return totalEspAcademicaContrataciones , tipo Integer.
	 */
	public Integer getTotalEspAcademicaContrataciones() {
		return totalEspAcademicaContrataciones;
	}

	/**
	 * Permite actualizar totalEspAcademicaContrataciones.
	 * @param totalEspAcademicaContrataciones, tipo Integer.
	 */
	public void setTotalEspAcademicaContrataciones(
			Integer totalEspAcademicaContrataciones) {
		this.totalEspAcademicaContrataciones = totalEspAcademicaContrataciones;
	}

	/**
	 * Metodo que permite obtener totalEspAcademicaArbitraje.
	 * @return totalEspAcademicaArbitraje , tipo Integer.
	 */
	public Integer getTotalEspAcademicaArbitraje() {
		return totalEspAcademicaArbitraje;
	}

	/**
	 * Permite actualizar totalEspAcademicaArbitraje.
	 * @param totalEspAcademicaArbitraje, tipo Integer.
	 */
	public void setTotalEspAcademicaArbitraje(Integer totalEspAcademicaArbitraje) {
		this.totalEspAcademicaArbitraje = totalEspAcademicaArbitraje;
	}

	/**
	 * Metodo que permite obtener totalEspAcademicaDerechoAdm.
	 * @return totalEspAcademicaDerechoAdm , tipo Integer.
	 */
	public Integer getTotalEspAcademicaDerechoAdm() {
		return totalEspAcademicaDerechoAdm;
	}

	/**
	 * Permite actualizar totalEspAcademicaDerechoAdm.
	 * @param totalEspAcademicaDerechoAdm, tipo Integer.
	 */
	public void setTotalEspAcademicaDerechoAdm(Integer totalEspAcademicaDerechoAdm) {
		this.totalEspAcademicaDerechoAdm = totalEspAcademicaDerechoAdm;
	}

	/**
	 * Metodo que permite obtener totalDocenciaContrataciones.
	 * @return totalDocenciaContrataciones , tipo Integer.
	 */
	public Integer getTotalDocenciaContrataciones() {
		return totalDocenciaContrataciones;
	}

	/**
	 * Permite actualizar totalDocenciaContrataciones.
	 * @param totalDocenciaContrataciones, tipo Integer.
	 */
	public void setTotalDocenciaContrataciones(Integer totalDocenciaContrataciones) {
		this.totalDocenciaContrataciones = totalDocenciaContrataciones;
	}

	/**
	 * Metodo que permite obtener totalDocenciaArbitraje.
	 * @return totalDocenciaArbitraje , tipo Integer.
	 */
	public Integer getTotalDocenciaArbitraje() {
		return totalDocenciaArbitraje;
	}

	/**
	 * Permite actualizar totalDocenciaArbitraje.
	 * @param totalDocenciaArbitraje, tipo Integer.
	 */
	public void setTotalDocenciaArbitraje(Integer totalDocenciaArbitraje) {
		this.totalDocenciaArbitraje = totalDocenciaArbitraje;
	}

	/**
	 * Metodo que permite obtener totalDocenciaDerechoAdm.
	 * @return totalDocenciaDerechoAdm , tipo Integer.
	 */
	public Integer getTotalDocenciaDerechoAdm() {
		return totalDocenciaDerechoAdm;
	}

	/**
	 * Permite actualizar totalDocenciaDerechoAdm.
	 * @param totalDocenciaDerechoAdm, tipo Integer.
	 */
	public void setTotalDocenciaDerechoAdm(Integer totalDocenciaDerechoAdm) {
		this.totalDocenciaDerechoAdm = totalDocenciaDerechoAdm;
	}

	/**
	 * Metodo que permite obtener totalArbPublicoContrataciones.
	 * @return totalArbPublicoContrataciones , tipo Integer.
	 */
	public Integer getTotalArbPublicoContrataciones() {
		return totalArbPublicoContrataciones;
	}

	/**
	 * Permite actualizar totalArbPublicoContrataciones.
	 * @param totalArbPublicoContrataciones, tipo Integer.
	 */
	public void setTotalArbPublicoContrataciones(
			Integer totalArbPublicoContrataciones) {
		this.totalArbPublicoContrataciones = totalArbPublicoContrataciones;
	}

	/**
	 * Metodo que permite obtener totalArbPublicoArbitraje.
	 * @return totalArbPublicoArbitraje , tipo Integer.
	 */
	public Integer getTotalArbPublicoArbitraje() {
		return totalArbPublicoArbitraje;
	}

	/**
	 * Permite actualizar totalArbPublicoArbitraje.
	 * @param totalArbPublicoArbitraje, tipo Integer.
	 */
	public void setTotalArbPublicoArbitraje(Integer totalArbPublicoArbitraje) {
		this.totalArbPublicoArbitraje = totalArbPublicoArbitraje;
	}


	/**
	 * Metodo que permite obtener totalArbPrivadoArbitraje.
	 * @return totalArbPrivadoArbitraje , tipo Integer.
	 */
	public Integer getTotalArbPrivadoArbitraje() {
		return totalArbPrivadoArbitraje;
	}

	/**
	 * Permite actualizar totalArbPrivadoArbitraje.
	 * @param totalArbPrivadoArbitraje, tipo Integer.
	 */
	public void setTotalArbPrivadoArbitraje(Integer totalArbPrivadoArbitraje) {
		this.totalArbPrivadoArbitraje = totalArbPrivadoArbitraje;
	}


	/**
	 * Metodo que permite obtener totalLaboralContratacion.
	 * @return totalLaboralContratacion , tipo String.
	 */
	public String getTotalLaboralContratacion() {
		return totalLaboralContratacion;
	}

	/**
	 * Permite actualizar totalLaboralContratacion.
	 * @param totalLaboralContratacion, tipo String.
	 */
	public void setTotalLaboralContratacion(String totalLaboralContratacion) {
		this.totalLaboralContratacion = totalLaboralContratacion;
	}

	/**
	 * Metodo que permite obtener totalLaboralArbitraje.
	 * @return totalLaboralArbitraje , tipo String.
	 */
	public String getTotalLaboralArbitraje() {
		return totalLaboralArbitraje;
	}

	/**
	 * Permite actualizar totalLaboralArbitraje.
	 * @param totalLaboralArbitraje, tipo String.
	 */
	public void setTotalLaboralArbitraje(String totalLaboralArbitraje) {
		this.totalLaboralArbitraje = totalLaboralArbitraje;
	}

	/**
	 * Metodo que permite obtener totalLaboralDerechoAdm.
	 * @return totalLaboralDerechoAdm , tipo String.
	 */
	public String getTotalLaboralDerechoAdm() {
		return totalLaboralDerechoAdm;
	}

	/**
	 * Permite actualizar totalLaboralDerechoAdm.
	 * @param totalLaboralDerechoAdm, tipo String.
	 */
	public void setTotalLaboralDerechoAdm(String totalLaboralDerechoAdm) {
		this.totalLaboralDerechoAdm = totalLaboralDerechoAdm;
	}

	/**
	 * Metodo que permite obtener acreditacionContrataciones.
	 * @return acreditacionContrataciones , tipo AcreditacionDTO.
	 */
	public AcreditacionDTO getAcreditacionContrataciones() {
		return acreditacionContrataciones;
	}

	/**
	 * Permite actualizar acreditacionContrataciones.
	 * @param acreditacionContrataciones, tipo AcreditacionDTO.
	 */
	public void setAcreditacionContrataciones(
			AcreditacionDTO acreditacionContrataciones) {
		this.acreditacionContrataciones = acreditacionContrataciones;
	}

	/**
	 * Metodo que permite obtener acreditacionArbitraje.
	 * @return acreditacionArbitraje , tipo AcreditacionDTO.
	 */
	public AcreditacionDTO getAcreditacionArbitraje() {
		return acreditacionArbitraje;
	}

	/**
	 * Permite actualizar acreditacionArbitraje.
	 * @param acreditacionArbitraje, tipo AcreditacionDTO.
	 */
	public void setAcreditacionArbitraje(AcreditacionDTO acreditacionArbitraje) {
		this.acreditacionArbitraje = acreditacionArbitraje;
	}

	/**
	 * Metodo que permite obtener acreditacionDerechoAdm.
	 * @return acreditacionDerechoAdm , tipo AcreditacionDTO.
	 */
	public AcreditacionDTO getAcreditacionDerechoAdm() {
		return acreditacionDerechoAdm;
	}

	/**
	 * Permite actualizar acreditacionDerechoAdm.
	 * @param acreditacionDerechoAdm, tipo AcreditacionDTO.
	 */
	public void setAcreditacionDerechoAdm(AcreditacionDTO acreditacionDerechoAdm) {
		this.acreditacionDerechoAdm = acreditacionDerechoAdm;
	}

	public List<EspecialidadAcademicaDTO> getListArbEspecialidadAcademicaHistorial() {
		return listArbEspecialidadAcademicaHistorial;
	}

	public void setListArbEspecialidadAcademicaHistorial(
			List<EspecialidadAcademicaDTO> listArbEspecialidadAcademicaHistorial) {
		this.listArbEspecialidadAcademicaHistorial = listArbEspecialidadAcademicaHistorial;
	}

	public List<CapacitacionDTO> getListArbEspecialCapacitacionHistorial() {
		return listArbEspecialCapacitacionHistorial;
	}

	public void setListArbEspecialCapacitacionHistorial(
			List<CapacitacionDTO> listArbEspecialCapacitacionHistorial) {
		this.listArbEspecialCapacitacionHistorial = listArbEspecialCapacitacionHistorial;
	}

	public List<DocenciaDTO> getListArbEspecialDocenciaHistorial() {
		return listArbEspecialDocenciaHistorial;
	}

	public void setListArbEspecialDocenciaHistorial(
			List<DocenciaDTO> listArbEspecialDocenciaHistorial) {
		this.listArbEspecialDocenciaHistorial = listArbEspecialDocenciaHistorial;
	}

	public List<TrayectoriaArbitralDTO> getListArbEspecialTrayectoriaArbitralPublicHistorial() {
		return listArbEspecialTrayectoriaArbitralPublicHistorial;
	}

	public void setListArbEspecialTrayectoriaArbitralPublicHistorial(
			List<TrayectoriaArbitralDTO> listArbEspecialTrayectoriaArbitralPublicHistorial) {
		this.listArbEspecialTrayectoriaArbitralPublicHistorial = listArbEspecialTrayectoriaArbitralPublicHistorial;
	}

	public List<TrayectoriaArbitralDTO> getListArbEspecialTrayectoriaArbitralPrivHistorial() {
		return listArbEspecialTrayectoriaArbitralPrivHistorial;
	}

	public void setListArbEspecialTrayectoriaArbitralPrivHistorial(
			List<TrayectoriaArbitralDTO> listArbEspecialTrayectoriaArbitralPrivHistorial) {
		this.listArbEspecialTrayectoriaArbitralPrivHistorial = listArbEspecialTrayectoriaArbitralPrivHistorial;
	}

	public List<ExperienciaLaboralDTO> getListArbEspecialExperienciaLaboralHistorial() {
		return listArbEspecialExperienciaLaboralHistorial;
	}

	public void setListArbEspecialExperienciaLaboralHistorial(
			List<ExperienciaLaboralDTO> listArbEspecialExperienciaLaboralHistorial) {
		this.listArbEspecialExperienciaLaboralHistorial = listArbEspecialExperienciaLaboralHistorial;
	}

	public Boolean getBtnEliminar() {
		return btnEliminar;
	}

	public void setBtnEliminar(Boolean btnEliminar) {
		this.btnEliminar = btnEliminar;
	}

	public String getCodTramite() {
		return codTramite;
	}

	public void setCodTramite(String codTramite) {
		this.codTramite = codTramite;
	}

	public Boolean getEsPendiente() {
		return esPendiente;
	}

	public void setEsPendiente(Boolean esPendiente) {
		this.esPendiente = esPendiente;
	}

	public Long getValorReglaHorasMin() {
		return valorReglaHorasMin;
	}

	public void setValorReglaHorasMin(Long valorReglaHorasMin) {
		this.valorReglaHorasMin = valorReglaHorasMin;
	}

	public Boolean getEsEditar() {
		return esEditar;
	}

	public void setEsEditar(Boolean esEditar) {
		this.esEditar = esEditar;
	}

	public Boolean getOtroCentroEstudios() {
		return otroCentroEstudios;
	}

	public void setOtroCentroEstudios(Boolean otroCentroEstudios) {
		this.otroCentroEstudios = otroCentroEstudios;
	}

	public TrayectoriaArbitralDTO getExperienciaArbitral() {
		return experienciaArbitral;
	}

	public void setExperienciaArbitral(TrayectoriaArbitralDTO experienciaArbitral) {
		this.experienciaArbitral = experienciaArbitral;
	}

	public List<TrayectoriaArbitralDTO> getListExperienciaArbitral() {
		return listExperienciaArbitral;
	}

	public void setListExperienciaArbitral(
			List<TrayectoriaArbitralDTO> listExperienciaArbitral) {
		this.listExperienciaArbitral = listExperienciaArbitral;
	}

	public Boolean getHablitarFecVigente() {
		return hablitarFecVigente;
	}

	public void setHablitarFecVigente(Boolean hablitarFecVigente) {
		this.hablitarFecVigente = hablitarFecVigente;
	}

	/**
	 * Metodo que permite obtener listaEntidadesDTO.
	 * @return listaEntidadesDTO , tipo List<EntidadDTO>.
	 */
	public List<EntidadDTO> getListaEntidadesDTO() {
		return listaEntidadesDTO;
	}

	/**
	 * Permite actualizar listaEntidadesDTO.
	 * @param listaEntidadesDTO, tipo List<EntidadDTO>.
	 */
	public void setListaEntidadesDTO(List<EntidadDTO> listaEntidadesDTO) {
		this.listaEntidadesDTO = listaEntidadesDTO;
	}

	/**
	 * Metodo que permite obtener listaObjetoContratacionDTO.
	 * @return listaObjetoContratacionDTO , tipo List<ObjetoContratacionDTO>.
	 */
	public List<ObjetoContratacionDTO> getListaObjetoContratacionDTO() {
		return listaObjetoContratacionDTO;
	}

	/**
	 * Permite actualizar listaObjetoContratacionDTO.
	 * @param listaObjetoContratacionDTO, tipo List<ObjetoContratacionDTO>.
	 */
	public void setListaObjetoContratacionDTO(
			List<ObjetoContratacionDTO> listaObjetoContratacionDTO) {
		this.listaObjetoContratacionDTO = listaObjetoContratacionDTO;
	}

	/**
	 * Metodo que permite obtener listaProcesoProdDTO.
	 * @return listaProcesoProdDTO , tipo List<ProcesoProdDTO>.
	 */
	public List<ProcesoProdDTO> getListaProcesoProdDTO() {
		return listaProcesoProdDTO;
	}

	/**
	 * Permite actualizar listaProcesoProdDTO.
	 * @param listaProcesoProdDTO, tipo List<ProcesoProdDTO>.
	 */
	public void setListaProcesoProdDTO(List<ProcesoProdDTO> listaProcesoProdDTO) {
		this.listaProcesoProdDTO = listaProcesoProdDTO;
	}

	/**
	 * Metodo que permite obtener busquedaContratoDTO.
	 * @return busquedaContratoDTO , tipo BusquedaContratoDTO.
	 */
	public BusquedaContratoDTO getBusquedaContratoDTO() {
		return busquedaContratoDTO;
	}

	/**
	 * Permite actualizar busquedaContratoDTO.
	 * @param busquedaContratoDTO, tipo BusquedaContratoDTO.
	 */
	public void setBusquedaContratoDTO(BusquedaContratoDTO busquedaContratoDTO) {
		this.busquedaContratoDTO = busquedaContratoDTO;
	}

	/**
	 * Metodo que permite obtener listaContrataciones.
	 * @return listaContrataciones , tipo List<BusquedaContratoDTO>.
	 */
	public List<BusquedaContratoDTO> getListaContrataciones() {
		return listaContrataciones;
	}

	/**
	 * Permite actualizar listaContrataciones.
	 * @param listaContrataciones, tipo List<BusquedaContratoDTO>.
	 */
	public void setListaContrataciones(List<BusquedaContratoDTO> listaContrataciones) {
		this.listaContrataciones = listaContrataciones;
	}

	/**
	 * Metodo que permite obtener contratoSeleccionadoDTO.
	 * @return contratoSeleccionadoDTO , tipo BusquedaContratoDTO.
	 */
	public BusquedaContratoDTO getContratoSeleccionadoDTO() {
		return contratoSeleccionadoDTO;
	}

	/**
	 * Permite actualizar contratoSeleccionadoDTO.
	 * @param contratoSeleccionadoDTO, tipo BusquedaContratoDTO.
	 */
	public void setContratoSeleccionadoDTO(
			BusquedaContratoDTO contratoSeleccionadoDTO) {
		this.contratoSeleccionadoDTO = contratoSeleccionadoDTO;
	}

	/**
	 * Metodo que permite obtener listaEspecialidadAcademicaOriginal.
	 * @return listaEspecialidadAcademicaOriginal , tipo List<EspecialidadAcademicaDTO>.
	 */
	public List<EspecialidadAcademicaDTO> getListaEspecialidadAcademicaOriginal() {
		return listaEspecialidadAcademicaOriginal;
	}

	/**
	 * Permite actualizar listaEspecialidadAcademicaOriginal.
	 * @param listaEspecialidadAcademicaOriginal, tipo List<EspecialidadAcademicaDTO>.
	 */
	public void setListaEspecialidadAcademicaOriginal(
			List<EspecialidadAcademicaDTO> listaEspecialidadAcademicaOriginal) {
		this.listaEspecialidadAcademicaOriginal = listaEspecialidadAcademicaOriginal;
	}

	/**
	 * Metodo que permite obtener listaEspecialidadAcademicaActualizacion.
	 * @return listaEspecialidadAcademicaActualizacion , tipo List<EspecialidadAcademicaDTO>.
	 */
	public List<EspecialidadAcademicaDTO> getListaEspecialidadAcademicaActualizacion() {
		return listaEspecialidadAcademicaActualizacion;
	}

	/**
	 * Permite actualizar listaEspecialidadAcademicaActualizacion.
	 * @param listaEspecialidadAcademicaActualizacion, tipo List<EspecialidadAcademicaDTO>.
	 */
	public void setListaEspecialidadAcademicaActualizacion(
			List<EspecialidadAcademicaDTO> listaEspecialidadAcademicaActualizacion) {
		this.listaEspecialidadAcademicaActualizacion = listaEspecialidadAcademicaActualizacion;
	}

	/**
	 * Metodo que permite obtener listaEspecialCapacitacionCompleta.
	 * @return listaEspecialCapacitacionCompleta , tipo List<CapacitacionDTO>.
	 */
	public List<CapacitacionDTO> getListaEspecialCapacitacionCompleta() {
		return listaEspecialCapacitacionCompleta;
	}

	/**
	 * Permite actualizar listaEspecialCapacitacionCompleta.
	 * @param listaEspecialCapacitacionCompleta, tipo List<CapacitacionDTO>.
	 */
	public void setListaEspecialCapacitacionCompleta(
			List<CapacitacionDTO> listaEspecialCapacitacionCompleta) {
		this.listaEspecialCapacitacionCompleta = listaEspecialCapacitacionCompleta;
	}

	/**
	 * Metodo que permite obtener listaEspecialCapacitacionOriginal.
	 * @return listaEspecialCapacitacionOriginal , tipo List<CapacitacionDTO>.
	 */
	public List<CapacitacionDTO> getListaEspecialCapacitacionOriginal() {
		return listaEspecialCapacitacionOriginal;
	}

	/**
	 * Permite actualizar listaEspecialCapacitacionOriginal.
	 * @param listaEspecialCapacitacionOriginal, tipo List<CapacitacionDTO>.
	 */
	public void setListaEspecialCapacitacionOriginal(
			List<CapacitacionDTO> listaEspecialCapacitacionOriginal) {
		this.listaEspecialCapacitacionOriginal = listaEspecialCapacitacionOriginal;
	}

	/**
	 * Metodo que permite obtener listaEspecialCapacitacionActualizacion.
	 * @return listaEspecialCapacitacionActualizacion , tipo List<CapacitacionDTO>.
	 */
	public List<CapacitacionDTO> getListaEspecialCapacitacionActualizacion() {
		return listaEspecialCapacitacionActualizacion;
	}

	/**
	 * Permite actualizar listaEspecialCapacitacionActualizacion.
	 * @param listaEspecialCapacitacionActualizacion, tipo List<CapacitacionDTO>.
	 */
	public void setListaEspecialCapacitacionActualizacion(
			List<CapacitacionDTO> listaEspecialCapacitacionActualizacion) {
		this.listaEspecialCapacitacionActualizacion = listaEspecialCapacitacionActualizacion;
	}

	/**
	 * Metodo que permite obtener listaEspecialDocenciaCompleta.
	 * @return listaEspecialDocenciaCompleta , tipo List<DocenciaDTO>.
	 */
	public List<DocenciaDTO> getListaEspecialDocenciaCompleta() {
		return listaEspecialDocenciaCompleta;
	}

	/**
	 * Permite actualizar listaEspecialDocenciaCompleta.
	 * @param listaEspecialDocenciaCompleta, tipo List<DocenciaDTO>.
	 */
	public void setListaEspecialDocenciaCompleta(
			List<DocenciaDTO> listaEspecialDocenciaCompleta) {
		this.listaEspecialDocenciaCompleta = listaEspecialDocenciaCompleta;
	}

	/**
	 * Metodo que permite obtener listaEspecialDocenciaOriginal.
	 * @return listaEspecialDocenciaOriginal , tipo List<DocenciaDTO>.
	 */
	public List<DocenciaDTO> getListaEspecialDocenciaOriginal() {
		return listaEspecialDocenciaOriginal;
	}

	/**
	 * Permite actualizar listaEspecialDocenciaOriginal.
	 * @param listaEspecialDocenciaOriginal, tipo List<DocenciaDTO>.
	 */
	public void setListaEspecialDocenciaOriginal(
			List<DocenciaDTO> listaEspecialDocenciaOriginal) {
		this.listaEspecialDocenciaOriginal = listaEspecialDocenciaOriginal;
	}

	/**
	 * Metodo que permite obtener listaEspecialDocenciaActualizacion.
	 * @return listaEspecialDocenciaActualizacion , tipo List<DocenciaDTO>.
	 */
	public List<DocenciaDTO> getListaEspecialDocenciaActualizacion() {
		return listaEspecialDocenciaActualizacion;
	}

	/**
	 * Permite actualizar listaEspecialDocenciaActualizacion.
	 * @param listaEspecialDocenciaActualizacion, tipo List<DocenciaDTO>.
	 */
	public void setListaEspecialDocenciaActualizacion(
			List<DocenciaDTO> listaEspecialDocenciaActualizacion) {
		this.listaEspecialDocenciaActualizacion = listaEspecialDocenciaActualizacion;
	}

	/**
	 * Metodo que permite obtener listaTrayectoriaArbitralPublicoCompleta.
	 * @return listaTrayectoriaArbitralPublicoCompleta , tipo List<TrayectoriaArbitralDTO>.
	 */
	public List<TrayectoriaArbitralDTO> getListaTrayectoriaArbitralPublicoCompleta() {
		return listaTrayectoriaArbitralPublicoCompleta;
	}

	/**
	 * Permite actualizar listaTrayectoriaArbitralPublicoCompleta.
	 * @param listaTrayectoriaArbitralPublicoCompleta, tipo List<TrayectoriaArbitralDTO>.
	 */
	public void setListaTrayectoriaArbitralPublicoCompleta(
			List<TrayectoriaArbitralDTO> listaTrayectoriaArbitralPublicoCompleta) {
		this.listaTrayectoriaArbitralPublicoCompleta = listaTrayectoriaArbitralPublicoCompleta;
	}

	/**
	 * Metodo que permite obtener listaTrayectoriaArbitralPublicoOriginal.
	 * @return listaTrayectoriaArbitralPublicoOriginal , tipo List<TrayectoriaArbitralDTO>.
	 */
	public List<TrayectoriaArbitralDTO> getListaTrayectoriaArbitralPublicoOriginal() {
		return listaTrayectoriaArbitralPublicoOriginal;
	}

	/**
	 * Permite actualizar listaTrayectoriaArbitralPublicoOriginal.
	 * @param listaTrayectoriaArbitralPublicoOriginal, tipo List<TrayectoriaArbitralDTO>.
	 */
	public void setListaTrayectoriaArbitralPublicoOriginal(
			List<TrayectoriaArbitralDTO> listaTrayectoriaArbitralPublicoOriginal) {
		this.listaTrayectoriaArbitralPublicoOriginal = listaTrayectoriaArbitralPublicoOriginal;
	}

	/**
	 * Metodo que permite obtener listaTrayectoriaArbitralPublicoActualizacion.
	 * @return listaTrayectoriaArbitralPublicoActualizacion , tipo List<TrayectoriaArbitralDTO>.
	 */
	public List<TrayectoriaArbitralDTO> getListaTrayectoriaArbitralPublicoActualizacion() {
		return listaTrayectoriaArbitralPublicoActualizacion;
	}

	/**
	 * Permite actualizar listaTrayectoriaArbitralPublicoActualizacion.
	 * @param listaTrayectoriaArbitralPublicoActualizacion, tipo List<TrayectoriaArbitralDTO>.
	 */
	public void setListaTrayectoriaArbitralPublicoActualizacion(
			List<TrayectoriaArbitralDTO> listaTrayectoriaArbitralPublicoActualizacion) {
		this.listaTrayectoriaArbitralPublicoActualizacion = listaTrayectoriaArbitralPublicoActualizacion;
	}

	/**
	 * Metodo que permite obtener listaTrayectoriaArbitralPrivadoCompleta.
	 * @return listaTrayectoriaArbitralPrivadoCompleta , tipo List<TrayectoriaArbitralDTO>.
	 */
	public List<TrayectoriaArbitralDTO> getListaTrayectoriaArbitralPrivadoCompleta() {
		return listaTrayectoriaArbitralPrivadoCompleta;
	}

	/**
	 * Permite actualizar listaTrayectoriaArbitralPrivadoCompleta.
	 * @param listaTrayectoriaArbitralPrivadoCompleta, tipo List<TrayectoriaArbitralDTO>.
	 */
	public void setListaTrayectoriaArbitralPrivadoCompleta(
			List<TrayectoriaArbitralDTO> listaTrayectoriaArbitralPrivadoCompleta) {
		this.listaTrayectoriaArbitralPrivadoCompleta = listaTrayectoriaArbitralPrivadoCompleta;
	}

	/**
	 * Metodo que permite obtener listaTrayectoriaArbitralPrivadoOriginal.
	 * @return listaTrayectoriaArbitralPrivadoOriginal , tipo List<TrayectoriaArbitralDTO>.
	 */
	public List<TrayectoriaArbitralDTO> getListaTrayectoriaArbitralPrivadoOriginal() {
		return listaTrayectoriaArbitralPrivadoOriginal;
	}

	/**
	 * Permite actualizar listaTrayectoriaArbitralPrivadoOriginal.
	 * @param listaTrayectoriaArbitralPrivadoOriginal, tipo List<TrayectoriaArbitralDTO>.
	 */
	public void setListaTrayectoriaArbitralPrivadoOriginal(
			List<TrayectoriaArbitralDTO> listaTrayectoriaArbitralPrivadoOriginal) {
		this.listaTrayectoriaArbitralPrivadoOriginal = listaTrayectoriaArbitralPrivadoOriginal;
	}

	/**
	 * Metodo que permite obtener listaTrayectoriaArbitralPrivadoActualizacion.
	 * @return listaTrayectoriaArbitralPrivadoActualizacion , tipo List<TrayectoriaArbitralDTO>.
	 */
	public List<TrayectoriaArbitralDTO> getListaTrayectoriaArbitralPrivadoActualizacion() {
		return listaTrayectoriaArbitralPrivadoActualizacion;
	}

	/**
	 * Permite actualizar listaTrayectoriaArbitralPrivadoActualizacion.
	 * @param listaTrayectoriaArbitralPrivadoActualizacion, tipo List<TrayectoriaArbitralDTO>.
	 */
	public void setListaTrayectoriaArbitralPrivadoActualizacion(
			List<TrayectoriaArbitralDTO> listaTrayectoriaArbitralPrivadoActualizacion) {
		this.listaTrayectoriaArbitralPrivadoActualizacion = listaTrayectoriaArbitralPrivadoActualizacion;
	}

	/**
	 * Metodo que permite obtener listaExperienciaLaboralCompleta.
	 * @return listaExperienciaLaboralCompleta , tipo List<ExperienciaLaboralDTO>.
	 */
	public List<ExperienciaLaboralDTO> getListaExperienciaLaboralCompleta() {
		return listaExperienciaLaboralCompleta;
	}

	/**
	 * Permite actualizar listaExperienciaLaboralCompleta.
	 * @param listaExperienciaLaboralCompleta, tipo List<ExperienciaLaboralDTO>.
	 */
	public void setListaExperienciaLaboralCompleta(
			List<ExperienciaLaboralDTO> listaExperienciaLaboralCompleta) {
		this.listaExperienciaLaboralCompleta = listaExperienciaLaboralCompleta;
	}

	/**
	 * Metodo que permite obtener listaExperienciaLaboralOriginal.
	 * @return listaExperienciaLaboralOriginal , tipo List<ExperienciaLaboralDTO>.
	 */
	public List<ExperienciaLaboralDTO> getListaExperienciaLaboralOriginal() {
		return listaExperienciaLaboralOriginal;
	}

	/**
	 * Permite actualizar listaExperienciaLaboralOriginal.
	 * @param listaExperienciaLaboralOriginal, tipo List<ExperienciaLaboralDTO>.
	 */
	public void setListaExperienciaLaboralOriginal(
			List<ExperienciaLaboralDTO> listaExperienciaLaboralOriginal) {
		this.listaExperienciaLaboralOriginal = listaExperienciaLaboralOriginal;
	}

	/**
	 * Metodo que permite obtener listaExperienciaLaboralActualizacion.
	 * @return listaExperienciaLaboralActualizacion , tipo List<ExperienciaLaboralDTO>.
	 */
	public List<ExperienciaLaboralDTO> getListaExperienciaLaboralActualizacion() {
		return listaExperienciaLaboralActualizacion;
	}

	/**
	 * Permite actualizar listaExperienciaLaboralActualizacion.
	 * @param listaExperienciaLaboralActualizacion, tipo List<ExperienciaLaboralDTO>.
	 */
	public void setListaExperienciaLaboralActualizacion(
			List<ExperienciaLaboralDTO> listaExperienciaLaboralActualizacion) {
		this.listaExperienciaLaboralActualizacion = listaExperienciaLaboralActualizacion;
	}

	public boolean isHabilitarFechaCese() {
		return habilitarFechaCese;
	}

	public void setHabilitarFechaCese(boolean habilitarFechaCese) {
		this.habilitarFechaCese = habilitarFechaCese;
	}

	
	
}
